Class DumbTerminalProvider

java.lang.Object
org.jline.terminal.impl.DumbTerminalProvider
All Implemented Interfaces:
TerminalProvider

public class DumbTerminalProvider extends Object implements TerminalProvider
Terminal provider implementation for dumb terminals.

The DumbTerminalProvider class provides a TerminalProvider implementation that creates DumbTerminal instances. Dumb terminals have minimal capabilities and are used as a fallback when more capable terminal implementations cannot be created or when running in environments with limited terminal support.

This provider supports two types of dumb terminals:

The provider name is "dumb", which can be specified in the org.jline.terminal.provider system property to force the use of this provider. This is useful in environments where other terminal providers might not work correctly or when terminal capabilities are not needed.

See Also:
  • Constructor Details

    • DumbTerminalProvider

      public DumbTerminalProvider()
  • Method Details

    • name

      public String name()
      Description copied from interface: TerminalProvider
      Returns the name of this terminal provider.

      The provider name is a unique identifier that can be used to request this specific provider when creating terminals. Common provider names include "ffm", "jni", "jansi", "jna", "exec", and "dumb".

      Specified by:
      name in interface TerminalProvider
      Returns:
      the name of this terminal provider
    • sysTerminal

      public Terminal sysTerminal(String name, String type, boolean ansiPassThrough, Charset encoding, Charset stdinEncoding, Charset stdoutEncoding, Charset stderrEncoding, boolean nativeSignals, Terminal.SignalHandler signalHandler, boolean paused, SystemStream systemStream) throws IOException
      Description copied from interface: TerminalProvider
      Creates a terminal connected to a system stream.

      This method creates a terminal that is connected to one of the standard system streams (standard input, standard output, or standard error). Such terminals typically represent the actual terminal window or console that the application is running in.

      Specified by:
      sysTerminal in interface TerminalProvider
      Parameters:
      name - the name of the terminal
      type - the terminal type (e.g., "xterm", "dumb")
      ansiPassThrough - whether to pass through ANSI escape sequences
      encoding - the general character encoding to use
      stdinEncoding - the character encoding to use for standard input
      stdoutEncoding - the character encoding to use for standard output
      stderrEncoding - the character encoding to use for standard error
      nativeSignals - whether to use native signal handling
      signalHandler - the signal handler to use
      paused - whether the terminal should start in a paused state
      systemStream - the system stream to connect to
      Returns:
      a new terminal connected to the specified system stream
      Throws:
      IOException - if an I/O error occurs
    • newTerminal

      public Terminal newTerminal(String name, String type, InputStream masterInput, OutputStream masterOutput, Charset encoding, Charset stdinEncoding, Charset stdoutEncoding, Charset stderrEncoding, Terminal.SignalHandler signalHandler, boolean paused, Attributes attributes, Size size) throws IOException
      Description copied from interface: TerminalProvider
      Creates a new terminal with custom input and output streams.

      This method creates a terminal that is connected to the specified input and output streams. Such terminals can be used for various purposes, such as connecting to remote terminals over network connections or creating virtual terminals for testing.

      Specified by:
      newTerminal in interface TerminalProvider
      Parameters:
      name - the name of the terminal
      type - the terminal type (e.g., "xterm", "dumb")
      masterInput - the input stream to read from
      masterOutput - the output stream to write to
      encoding - the general character encoding to use
      stdinEncoding - the character encoding to use for standard input
      stdoutEncoding - the character encoding to use for standard output
      stderrEncoding - the character encoding to use for standard error
      signalHandler - the signal handler to use
      paused - whether the terminal should start in a paused state
      attributes - the initial terminal attributes
      size - the initial terminal size
      Returns:
      a new terminal connected to the specified streams
      Throws:
      IOException - if an I/O error occurs
    • isSystemStream

      public boolean isSystemStream(SystemStream stream)
      Description copied from interface: TerminalProvider
      Checks if the specified system stream is available on this platform.

      This method determines whether the specified system stream (standard input, standard output, or standard error) is available for use on the current platform. Some platforms or environments may restrict access to certain system streams.

      Specified by:
      isSystemStream in interface TerminalProvider
      Parameters:
      stream - the system stream to check
      Returns:
      true if the system stream is available, false otherwise
    • systemStreamName

      public String systemStreamName(SystemStream stream)
      Description copied from interface: TerminalProvider
      Returns the name of the specified system stream on this platform.

      This method returns a platform-specific name or identifier for the specified system stream. The name may be used for display purposes or for accessing the stream through platform-specific APIs.

      Specified by:
      systemStreamName in interface TerminalProvider
      Parameters:
      stream - the system stream
      Returns:
      the name of the system stream on this platform
    • systemStreamWidth

      public int systemStreamWidth(SystemStream stream)
      Description copied from interface: TerminalProvider
      Returns the width (number of columns) of the specified system stream.

      This method determines the width of the terminal associated with the specified system stream. The width is measured in character cells and represents the number of columns available for display.

      Specified by:
      systemStreamWidth in interface TerminalProvider
      Parameters:
      stream - the system stream
      Returns:
      the width of the system stream in character columns
    • toString

      public String toString()
      Overrides:
      toString in class Object