[CJ-dev] commonjava-projects/commonjava-console/src/java/org/commonjava/console PromptConfig.java,NO
Brought to you by:
johnqueso
From: <joh...@co...> - 2004-02-18 06:21:51
|
Update of /cvsroot/commonjava/commonjava-projects/commonjava-console/src/java/org/commonjava/console In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26752/src/java/org/commonjava/console Added Files: PromptConfig.java SimplePrompt.java Log Message: updated documentation in project.xml files, and added functionality to: Console: - provide convenient way to prompt the user for more information Config: - Provide snap-in container stacking, or scoping - Provide a JBoss service implementation of a snap-in container Probably other things, but I don't honestly remember everything... --- NEW FILE: PromptConfig.java --- /* Created on Feb 6, 2004 */ package org.commonjava.console; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintStream; import org.commonjava.console.option.OptionFormat; import org.commonjava.lang.Verifiable; /** * @author jdcasey */ public class PromptConfig implements Verifiable { private InputStream in; private OutputStream out; private PrintStream err; private String prompt; private OptionFormat answerFormat; private String defaultValue; /** * */ public PromptConfig() { } /* (non-Javadoc) * @see org.commonjava.lang.Verifiable#verifyValid() */ public boolean verifyValid() { return in != null && out != null && err != null && prompt != null && answerFormat != null; } /** * @return */ public OptionFormat getAnswerFormat() { return answerFormat; } /** * @return */ public PrintStream getErr() { return err; } /** * @return */ public InputStream getIn() { return in; } /** * @return */ public OutputStream getOut() { return out; } /** * @return */ public String getPrompt() { return prompt; } /** * @param format */ public void setAnswerFormat(OptionFormat format) { answerFormat = format; } /** * @param stream */ public void setErr(PrintStream stream) { err = stream; } /** * @param stream */ public void setIn(InputStream stream) { in = stream; } /** * @param stream */ public void setOut(OutputStream stream) { out = stream; } /** * @param string */ public void setPrompt(String string) { prompt = string; } /** * @return */ public String getDefaultValue() { return defaultValue; } /** * @param string */ public void setDefaultValue(String string) { defaultValue = string; } } --- NEW FILE: SimplePrompt.java --- /* Created on Feb 6, 2004 */ package org.commonjava.console; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintStream; import org.commonjava.console.option.OptionFormat; /** * @author jdcasey */ public class SimplePrompt { private PromptConfig config; /** * */ public SimplePrompt(PromptConfig config) { if(!config.verifyValid()){ throw new IllegalArgumentException("Prompt configuration is not complete."); } this.config = config; } public Object prompt() throws IOException{ BufferedReader in = new BufferedReader(new InputStreamReader(config.getIn())); PrintStream out = new PrintStream(config.getOut()); PrintStream err = config.getErr(); String defaultVal = config.getDefaultValue(); String answer = null; Object result = null; while(answer == null){ out.print(config.getPrompt() + " "); out.flush(); answer = in.readLine(); OptionFormat format = config.getAnswerFormat(); if(format.isValid(answer)){ answer = null; out.println("You must supply a valid value. Please try again."); } else if(defaultVal != null && format.isValid(defaultVal)){ result = format.getValue(defaultVal); break; } else{ result = format.getValue(answer); break; } } return result; } } |