Class SystemRegistryImpl

java.lang.Object
org.jline.console.impl.SystemRegistryImpl
All Implemented Interfaces:
org.jline.builtins.ConsoleOptionGetter, CommandRegistry, SystemRegistry
Direct Known Subclasses:
SimpleSystemRegistryImpl

public class SystemRegistryImpl extends Object implements SystemRegistry
Aggregate command registries.
  • Field Details

    • parser

      protected final org.jline.reader.Parser parser
    • configPath

      protected final org.jline.builtins.ConfigurationPath configPath
    • workDir

      protected final Supplier<Path> workDir
  • Constructor Details

    • SystemRegistryImpl

      public SystemRegistryImpl(org.jline.reader.Parser parser, org.jline.terminal.Terminal terminal, Supplier<Path> workDir, org.jline.builtins.ConfigurationPath configPath)
  • Method Details

    • rename

      public void rename(SystemRegistryImpl.Pipe pipe, String name)
    • getPipeNames

      public Collection<String> getPipeNames()
      Description copied from interface: SystemRegistry
      Returns the names of all pipes defined in this system registry.

      This method retrieves the names of all pipes that have been defined in this system registry. Pipes are used to connect the output of one command to the input of another.

      Specified by:
      getPipeNames in interface SystemRegistry
      Returns:
      a collection of pipe names defined in this system registry
    • setCommandRegistries

      public void setCommandRegistries(CommandRegistry... commandRegistries)
      Description copied from interface: SystemRegistry
      Sets the command registries to be used by this system registry.

      This method configures the command registries that will be aggregated by this system registry. Commands from all of these registries will be available for execution through this system registry.

      Specified by:
      setCommandRegistries in interface SystemRegistry
      Parameters:
      commandRegistries - the command registries to be used by the application
    • initialize

      public void initialize(File script)
      Description copied from interface: SystemRegistry
      Initializes the console engine environment by executing a console script.

      This method executes the specified script to initialize the console engine environment. The script can set up variables, aliases, and other configuration needed for the console application.

      Specified by:
      initialize in interface SystemRegistry
      Parameters:
      script - the initialization script to execute
    • commandNames

      public Set<String> commandNames()
      Description copied from interface: CommandRegistry
      Returns the command names known by this registry.
      Specified by:
      commandNames in interface CommandRegistry
      Returns:
      the set of known command names, excluding aliases
    • commandAliases

      public Map<String,String> commandAliases()
      Description copied from interface: CommandRegistry
      Returns a map of alias-to-command names known by this registry.
      Specified by:
      commandAliases in interface CommandRegistry
      Returns:
      a map with alias keys and command name values
    • consoleOption

      public Object consoleOption(String name)
      Description copied from interface: SystemRegistry
      Returns the value of a console option.

      This method retrieves the value of the console option with the specified name. Console options are used to configure the behavior of the console and its components.

      Specified by:
      consoleOption in interface org.jline.builtins.ConsoleOptionGetter
      Specified by:
      consoleOption in interface SystemRegistry
      Parameters:
      name - the name of the option to retrieve
      Returns:
      the value of the option, or null if the option doesn't exist
    • consoleOption

      public <T> T consoleOption(String name, T defVal)
      Description copied from interface: SystemRegistry
      Returns the value of a console option with a default value if the option doesn't exist.

      This method retrieves the value of the console option with the specified name, returning a default value if the option doesn't exist. Console options are used to configure the behavior of the console and its components.

      Specified by:
      consoleOption in interface org.jline.builtins.ConsoleOptionGetter
      Specified by:
      consoleOption in interface SystemRegistry
      Type Parameters:
      T - the type of the option value
      Parameters:
      name - the name of the option to retrieve
      defVal - the default value to return if the option doesn't exist
      Returns:
      the value of the option, or the default value if the option doesn't exist
    • setConsoleOption

      public void setConsoleOption(String name, Object value)
      Description copied from interface: SystemRegistry
      Sets the value of a console option.

      This method sets the value of the console option with the specified name. Console options are used to configure the behavior of the console and its components.

      Specified by:
      setConsoleOption in interface SystemRegistry
      Parameters:
      name - the name of the option to set
      value - the value to assign to the option
    • register

      public void register(String command, CommandRegistry subcommandRegistry)
      Register subcommand registry
      Specified by:
      register in interface SystemRegistry
      Parameters:
      command - main command
      subcommandRegistry - subcommand registry
    • commandInfo

      public List<String> commandInfo(String command)
      Description copied from interface: CommandRegistry
      Returns a short info about command known by this registry.
      Specified by:
      commandInfo in interface CommandRegistry
      Parameters:
      command - the command name
      Returns:
      a short info about command
    • hasCommand

      public boolean hasCommand(String command)
      Description copied from interface: CommandRegistry
      Returns whether a command with the specified name is known to this registry.
      Specified by:
      hasCommand in interface CommandRegistry
      Parameters:
      command - the command name to test
      Returns:
      true if the specified command is registered
    • setGroupCommandsInHelp

      public void setGroupCommandsInHelp(boolean commandGroups)
    • groupCommandsInHelp

      public SystemRegistryImpl groupCommandsInHelp(boolean commandGroups)
    • isCommandOrScript

      public boolean isCommandOrScript(org.jline.reader.ParsedLine line)
      Description copied from interface: SystemRegistry
      Checks if a parsed line contains a command or script that is known to this registry.

      This method determines whether the specified parsed command line contains a command or script that is known to this registry. This can be used to determine whether the line can be executed by this registry.

      Specified by:
      isCommandOrScript in interface SystemRegistry
      Parameters:
      line - the parsed command line to test
      Returns:
      true if the specified line contains a command or script that is known to this registry, false otherwise
    • isCommandOrScript

      public boolean isCommandOrScript(String command)
      Description copied from interface: SystemRegistry
      Checks if a command or script is known to this registry.

      This method determines whether the specified command or script is known to this registry. This can be used to determine whether the command or script can be executed by this registry.

      Specified by:
      isCommandOrScript in interface SystemRegistry
      Parameters:
      command - the command or script name to test
      Returns:
      true if the specified command or script is known to this registry, false otherwise
    • addCompleter

      public void addCompleter(org.jline.reader.Completer completer)
    • compileCompleters

      public org.jline.reader.impl.completer.SystemCompleter compileCompleters()
      Description copied from interface: CommandRegistry
      Returns a SystemCompleter that can provide detailed completion information for all registered commands.
      Specified by:
      compileCompleters in interface CommandRegistry
      Returns:
      a SystemCompleter that can provide command completion for all registered commands
    • completer

      public org.jline.reader.Completer completer()
      Description copied from interface: SystemRegistry
      Returns a command completer that includes console variable and script completion.

      This method creates a completer that can provide completion for commands, console variables, and scripts. The completer can be used for tab completion in the console.

      Specified by:
      completer in interface SystemRegistry
      Returns:
      a completer for commands, console variables, and scripts
    • commandDescription

      public CmdDesc commandDescription(List<String> args)
      Description copied from interface: CommandRegistry
      Returns a command description for use in the JLine Widgets framework. Default method must be overridden to return sub command descriptions.
      Specified by:
      commandDescription in interface CommandRegistry
      Parameters:
      args - command (args[0]) and its arguments
      Returns:
      command description for JLine TailTipWidgets to be displayed in the terminal status bar.
    • setScriptDescription

      public void setScriptDescription(Function<CmdLine,CmdDesc> scriptDescription)
    • commandDescription

      public CmdDesc commandDescription(CmdLine line)
      Description copied from interface: SystemRegistry
      Returns a description for a command, method, or syntax for use in the JLine Widgets framework.

      This method generates a description for the specified command line, which can be displayed in the terminal status bar by JLine TailTipWidgets. The description includes information about the command's arguments, options, and usage.

      Specified by:
      commandDescription in interface SystemRegistry
      Parameters:
      line - the command line whose description to return
      Returns:
      a command description for JLine TailTipWidgets to be displayed in the terminal status bar
    • invoke

      public Object invoke(String command, Object... args) throws Exception
      Description copied from interface: SystemRegistry
      Executes a command with the specified arguments.

      This method executes the specified command with the specified arguments. The command is looked up in the command registries associated with this system registry.

      Specified by:
      invoke in interface SystemRegistry
      Parameters:
      command - the command to be executed
      args - the arguments to pass to the command
      Returns:
      the result of executing the command
      Throws:
      Exception - if an error occurs during execution
    • terminal

      public org.jline.terminal.Terminal terminal()
      Description copied from interface: SystemRegistry
      Returns the terminal associated with this system registry.

      This method retrieves the terminal that is used by this system registry for input and output operations.

      Specified by:
      terminal in interface SystemRegistry
      Returns:
      the terminal associated with this system registry
    • isCommandAlias

      public boolean isCommandAlias(String command)
      Description copied from interface: SystemRegistry
      Checks if an alias is a known command alias.

      This method determines whether the specified alias is a known command alias. Command aliases are alternative names for commands that can be used to invoke them.

      Specified by:
      isCommandAlias in interface SystemRegistry
      Parameters:
      command - the alias to test
      Returns:
      true if the specified alias is a known command alias, false otherwise
    • execute

      public Object execute(String line) throws Exception
      Description copied from interface: SystemRegistry
      Executes a command, script, or evaluates a script engine statement.

      This method parses and executes the specified command line. If the line contains a known command, it will be executed. If it contains a script name, the script will be executed. Otherwise, the line will be evaluated as a script engine statement.

      Specified by:
      execute in interface SystemRegistry
      Parameters:
      line - the command line to be executed
      Returns:
      the result of executing the command line
      Throws:
      Exception - if an error occurs during execution
    • cleanUp

      public void cleanUp()
      Description copied from interface: SystemRegistry
      Deletes temporary console variables and resets output streams.

      This method cleans up temporary console variables and resets output streams to their default state. It should be called after command execution to ensure that temporary variables and redirected output streams don't affect subsequent commands.

      Specified by:
      cleanUp in interface SystemRegistry
    • trace

      public void trace(Throwable exception)
      Description copied from interface: SystemRegistry
      Prints an exception on the terminal.

      This method prints the specified exception on the terminal, including its message and stack trace. This is a convenience method that calls SystemRegistry.trace(boolean, Throwable) with stack=true.

      Specified by:
      trace in interface SystemRegistry
      Parameters:
      exception - the exception to print on the terminal
    • trace

      public void trace(boolean stack, Throwable exception)
      Description copied from interface: SystemRegistry
      Prints an exception on the terminal with control over stack trace display.

      This method prints the specified exception on the terminal. If stack is true, the full stack trace will be printed. Otherwise, only the exception message will be printed.

      Specified by:
      trace in interface SystemRegistry
      Parameters:
      stack - whether to print the full stack trace (true) or just the message (false)
      exception - the exception to be printed
    • close

      public void close()
      Description copied from interface: SystemRegistry
      Orderly closes this system registry.

      This method performs an orderly shutdown of this system registry, releasing any resources it holds and performing any necessary cleanup operations. It should be called when the system registry is no longer needed.

      Specified by:
      close in interface SystemRegistry
    • consoleEngine

      public ConsoleEngine consoleEngine()