Class Terminal


  • public abstract class Terminal
    extends java.lang.Object
    A Terminal wraps access to reading input and writing output for a cli. The available methods are similar to those of Console, with the ability to read either normal text or a password, and the ability to print a line of text. Printing is also gated by the Terminal.Verbosity of the terminal, which allows println(Verbosity,String) calls which act like a logger, only actually printing if the verbosity level of the terminal is above the verbosity of the message.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  Terminal.Verbosity
      Defines the available verbosity levels of messages to be printed.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static Terminal DEFAULT
      The default terminal implementation, which will be a console if available, or stdout/stderr if not.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected Terminal​(java.lang.String lineSeparator)  
    • Method Summary

      Modifier and Type Method Description
      abstract java.io.PrintWriter getWriter()
      Returns a Writer which can be used to write to the terminal directly.
      boolean isPrintable​(Terminal.Verbosity verbosity)
      Checks if is enough verbosity level to be printed
      void print​(Terminal.Verbosity verbosity, java.lang.String msg)
      Prints message to the terminal at verbosity level, without a newline.
      void println​(java.lang.String msg)
      Prints a line to the terminal at Terminal.Verbosity.NORMAL verbosity level.
      void println​(Terminal.Verbosity verbosity, java.lang.String msg)
      Prints a line to the terminal at verbosity level.
      boolean promptYesNo​(java.lang.String prompt, boolean defaultYes)
      Prompt for a yes or no answer from the user.
      abstract char[] readSecret​(java.lang.String prompt)
      Reads password text from the terminal input.
      abstract java.lang.String readText​(java.lang.String prompt)
      Reads clear text from the terminal input.
      void setVerbosity​(Terminal.Verbosity verbosity)
      Sets the verbosity of the terminal.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • DEFAULT

        public static final Terminal DEFAULT
        The default terminal implementation, which will be a console if available, or stdout/stderr if not.
    • Constructor Detail

      • Terminal

        protected Terminal​(java.lang.String lineSeparator)
    • Method Detail

      • setVerbosity

        public void setVerbosity​(Terminal.Verbosity verbosity)
        Sets the verbosity of the terminal.
      • readText

        public abstract java.lang.String readText​(java.lang.String prompt)
        Reads clear text from the terminal input. See Console.readLine().
      • readSecret

        public abstract char[] readSecret​(java.lang.String prompt)
        Reads password text from the terminal input. See Console.readPassword()}.
      • getWriter

        public abstract java.io.PrintWriter getWriter()
        Returns a Writer which can be used to write to the terminal directly.
      • println

        public final void println​(java.lang.String msg)
        Prints a line to the terminal at Terminal.Verbosity.NORMAL verbosity level.
      • println

        public final void println​(Terminal.Verbosity verbosity,
                                  java.lang.String msg)
        Prints a line to the terminal at verbosity level.
      • print

        public final void print​(Terminal.Verbosity verbosity,
                                java.lang.String msg)
        Prints message to the terminal at verbosity level, without a newline.
      • isPrintable

        public final boolean isPrintable​(Terminal.Verbosity verbosity)
        Checks if is enough verbosity level to be printed
      • promptYesNo

        public final boolean promptYesNo​(java.lang.String prompt,
                                         boolean defaultYes)
        Prompt for a yes or no answer from the user. This method will loop until 'y' or 'n' (or the default empty value) is entered.