001 package org.codehaus.groovy.sandbox.ui;
002
003 import java.io.InputStream;
004 import java.io.PrintStream;
005
006 /**
007 * Factory to build a command line prompt. Should build the most featureful
008 * prompt available.
009 * <p/>
010 * Currently readline prompt will be looked up dynamically, and defaults to
011 * normal System.in prompt.
012 */
013 public class PromptFactory
014 {
015 public static Prompt buildPrompt(InputStream in, PrintStream out, PrintStream err)
016 {
017 try
018 {
019 return (Prompt) Class.forName("org.codehaus.groovy.sandbox.ui.ReadlinePrompt").newInstance();
020 }
021 catch (ClassNotFoundException e)
022 {
023 return new JavaPrompt(in, out, err);
024 }
025 catch (Exception e)
026 {
027 e.printStackTrace();
028 return new JavaPrompt(in, out, err);
029 }
030 }
031 }