001 package org.codehaus.groovy.sandbox.ui;
002
003 import java.io.BufferedReader;
004 import java.io.IOException;
005 import java.io.InputStreamReader;
006 import java.io.InputStream;
007 import java.io.PrintStream;
008
009 /**
010 * Pure Java prompt using just System.in.
011 */
012 public class JavaPrompt implements Prompt
013 {
014 private String prompt;
015 private BufferedReader input;
016 private final PrintStream out;
017 private final PrintStream err;
018
019 public JavaPrompt(InputStream in, PrintStream out, PrintStream err)
020 {
021 this.out = out;
022 this.err = err;
023 this.input = new BufferedReader(new InputStreamReader(in));
024 }
025
026 public JavaPrompt()
027 {
028 this(System.in, System.out, System.err);
029 }
030
031 public String readLine() throws IOException
032 {
033 out.print(prompt);
034 out.flush();
035 return input.readLine();
036 }
037
038 public String getPrompt()
039 {
040 return prompt;
041 }
042
043 public void setPrompt(String prompt)
044 {
045 this.prompt = prompt;
046 }
047
048 public void setCompleter(Completer completer)
049 {
050 // completer not supported
051 }
052
053 public void close()
054 {
055 try
056 {
057 input.close();
058 }
059 catch (IOException e)
060 {
061 e.printStackTrace(err);
062 }
063 }
064 }