01: import java.io.BufferedReader; 02: import java.io.IOException; 03: 04: /** 05: A telephone that takes simulated keystrokes and voice input 06: from the user and simulates spoken text. 07: */ 08: public class Telephone 09: { 10: /** 11: Construct phone object. 12: @param aReader that reads text from a character-input stream 13: */ 14: public Telephone(BufferedReader aReader) 15: { 16: reader = aReader; 17: } 18: 19: /** 20: Speak a message to System.out. 21: @param output the text that will be "spoken" 22: */ 23: public void speak(String output) 24: { 25: System.out.println(output); 26: } 27: 28: /** 29: Loops reading user input and passes the input to the 30: Connection object's methods dial, record or hangup. 31: @param c the connection that connects this phone to the 32: voice mail system 33: */ 34: public void run(Connection c) throws IOException 35: { 36: boolean more = true; 37: while (more) 38: { 39: String input = reader.readLine(); 40: if (input == null) return; 41: if (input.equalsIgnoreCase("H")) 42: c.hangup(); 43: else if (input.equalsIgnoreCase("Q")) 44: more = false; 45: else if (input.length() == 1 46: && "1234567890#".indexOf(input) >= 0) 47: c.dial(input); 48: else 49: c.record(input); 50: } 51: } 52: 53: private BufferedReader reader; 54: }