View Javadoc
1   package org.cyclopsgroup.jmxterm.io;
2   
3   import org.apache.commons.lang3.StringUtils;
4   import org.apache.commons.lang3.Validate;
5   import org.jline.reader.impl.LineReaderImpl;
6   
7   import java.io.IOException;
8   
9   /**
10   * Implementation of input that reads command from jloin console input
11   *
12   * @author <a href="mailto:jiaqi.guo@gmail.com">Jiaqi Guo</a>
13   */
14  public class JlineCommandInput extends CommandInput {
15    private final LineReaderImpl console;
16  
17    private final String prompt;
18  
19    /**
20     * @param console Jline console reader
21     * @param prompt Prompt string
22     */
23    public JlineCommandInput(LineReaderImpl console, String prompt) {
24      Validate.notNull(console, "Jline console reader can't be NULL");
25      this.console = console;
26      this.prompt = StringUtils.trimToEmpty(prompt);
27    }
28  
29    /**
30     * @return Jline console
31     */
32    public final LineReaderImpl getConsole() {
33      return console;
34    }
35  
36    @Override
37    public String readLine() throws IOException {
38      return console.readLine(prompt);
39    }
40  
41    @Override
42    public String readMaskedString(String prompt) throws IOException {
43      return console.readLine(prompt, '*');
44    }
45  }