package org.cyclopsgroup.jmxterm.io; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.LineNumberReader; import org.apache.commons.lang.Validate; /** * Implementation of {@link CommandInput} with an input stream * * @author <a href="mailto:jiaqi.guo@gmail.com">Jiaqi Guo</a> */ public class InputStreamCommandInput extends CommandInput { private final LineNumberReader reader; /** * @param in Given input stream */ public InputStreamCommandInput( InputStream in ) { Validate.notNull( in, "Input stream can't be NULL" ); reader = new LineNumberReader( new InputStreamReader( in ) ); } /** * @inheritDoc */ @Override public String readLine() throws IOException { return reader.readLine(); } /** * @inheritDoc */ @Override public String readMaskedString( String prompt ) throws IOException { throw new UnsupportedOperationException( "Reading password from stream is not supported" ); } /** * @inheritDoc */ @Override public void close() throws IOException { reader.close(); } }