Package jline

Class Terminal

java.lang.Object
jline.Terminal
All Implemented Interfaces:
ConsoleOperations
Direct Known Subclasses:
UnixTerminal, UnsupportedTerminal, WindowsTerminal

public abstract class Terminal extends Object implements ConsoleOperations
Representation of the input terminal for a platform. Handles any initialization that the platform may need to perform in order to allow the ConsoleReader to correctly handle input.
Author:
Marc Prud'hommeaux
  • Constructor Details

    • Terminal

      public Terminal()
  • Method Details

    • getTerminal

      public static Terminal getTerminal()
      See Also:
    • resetTerminal

      public static void resetTerminal()
      Reset the current terminal to null.
    • setupTerminal

      public static Terminal setupTerminal()

      Configure and return the Terminal instance for the current platform. This will initialize any system settings that are required for the console to be able to handle input correctly, such as setting tabtop, buffered input, and character echo.

      This class will use the Terminal implementation specified in the jline.terminal system property, or, if it is unset, by detecting the operating system from the os.name system property and instantiating either the WindowsTerminalTest or UnixTerminal.

      See Also:
    • isANSISupported

      public boolean isANSISupported()
      Returns true if the current console supports ANSI codes.
    • readCharacter

      public int readCharacter(InputStream in) throws IOException
      Read a single character from the input stream. This might enable a terminal implementation to better handle nuances of the console.
      Throws:
      IOException
    • readVirtualKey

      public int readVirtualKey(InputStream in) throws IOException
      Reads a virtual key from the console. Typically, this will just be the raw character that was entered, but in some cases, multiple input keys will need to be translated into a single virtual key.
      Parameters:
      in - the InputStream to read from
      Returns:
      the virtual key (e.g., ConsoleOperations#VK_UP)
      Throws:
      IOException
    • initializeTerminal

      public abstract void initializeTerminal() throws Exception
      Initialize any system settings that are required for the console to be able to handle input correctly, such as setting tabtop, buffered input, and character echo.
      Throws:
      Exception
    • getTerminalWidth

      public abstract int getTerminalWidth()
      Returns the current width of the terminal (in characters)
    • getTerminalHeight

      public abstract int getTerminalHeight()
      Returns the current height of the terminal (in lines)
    • isSupported

      public abstract boolean isSupported()
      Returns true if this terminal is capable of initializing the terminal to use jline.
    • getEcho

      public abstract boolean getEcho()
      Returns true if the terminal will echo all characters type.
    • beforeReadLine

      public void beforeReadLine(ConsoleReader reader, String prompt, Character mask)
      Invokes before the console reads a line with the prompt and mask.
    • afterReadLine

      public void afterReadLine(ConsoleReader reader, String prompt, Character mask)
      Invokes after the console reads a line with the prompt and mask.
    • isEchoEnabled

      public abstract boolean isEchoEnabled()
      Returns false if character echoing is disabled.
    • enableEcho

      public abstract void enableEcho()
      Enable character echoing. This can be used to re-enable character if the ConsoleReader is no longer being used.
    • disableEcho

      public abstract void disableEcho()
      Disable character echoing. This can be used to manually re-enable character if the ConsoleReader has been disabled.
    • getDefaultBindings

      public InputStream getDefaultBindings()