JlineCommandInput.java
package org.cyclopsgroup.jmxterm.io;
import java.io.IOException;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.Validate;
import org.jline.reader.impl.LineReaderImpl;
/**
* Implementation of input that reads command from jloin console input
*
* @author <a href="mailto:jiaqi.guo@gmail.com">Jiaqi Guo</a>
*/
public class JlineCommandInput extends CommandInput {
private final LineReaderImpl console;
private final String prompt;
/**
* @param console Jline console reader
* @param prompt Prompt string
*/
public JlineCommandInput(LineReaderImpl console, String prompt) {
Validate.notNull(console, "Jline console reader can't be NULL");
this.console = console;
this.prompt = StringUtils.trimToEmpty(prompt);
}
/**
* @return Jline console
*/
public final LineReaderImpl getConsole() {
return console;
}
@Override
public String readLine() throws IOException {
return console.readLine(prompt);
}
@Override
public String readMaskedString(String prompt) throws IOException {
return console.readLine(prompt, '*');
}
}