Class SystemRegistryImpl

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected org.jline.builtins.ConfigurationPath configPath  
      protected org.jline.reader.Parser parser  
      protected java.util.function.Supplier<java.nio.file.Path> workDir  
    • Constructor Summary

      Constructors 
      Constructor Description
      SystemRegistryImpl​(org.jline.reader.Parser parser, org.jline.terminal.Terminal terminal, java.util.function.Supplier<java.nio.file.Path> workDir, org.jline.builtins.ConfigurationPath configPath)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addCompleter​(org.jline.reader.Completer completer)  
      void cleanUp()
      Deletes temporary console variables and resets output streams.
      void close()
      Orderly closes this system registry.
      java.util.Map<java.lang.String,​java.lang.String> commandAliases()
      Returns a map of alias-to-command names known by this registry.
      CmdDesc commandDescription​(java.util.List<java.lang.String> args)
      Returns a command description for use in the JLine Widgets framework.
      CmdDesc commandDescription​(CmdLine line)
      Returns a description for a command, method, or syntax for use in the JLine Widgets framework.
      java.util.List<java.lang.String> commandInfo​(java.lang.String command)
      Returns a short info about command known by this registry.
      java.util.Set<java.lang.String> commandNames()
      Returns the command names known by this registry.
      org.jline.reader.impl.completer.SystemCompleter compileCompleters()
      Returns a SystemCompleter that can provide detailed completion information for all registered commands.
      org.jline.reader.Completer completer()
      Returns a command completer that includes console variable and script completion.
      ConsoleEngine consoleEngine()  
      java.lang.Object consoleOption​(java.lang.String name)
      Returns the value of a console option.
      <T> T consoleOption​(java.lang.String name, T defVal)
      Returns the value of a console option with a default value if the option doesn't exist.
      java.lang.Object execute​(java.lang.String line)
      Executes a command, script, or evaluates a script engine statement.
      java.util.Collection<java.lang.String> getPipeNames()
      Returns the names of all pipes defined in this system registry.
      SystemRegistryImpl groupCommandsInHelp​(boolean commandGroups)  
      boolean hasCommand​(java.lang.String command)
      Returns whether a command with the specified name is known to this registry.
      void initialize​(java.io.File script)
      Initializes the console engine environment by executing a console script.
      java.lang.Object invoke​(java.lang.String command, java.lang.Object... args)
      Executes a command with the specified arguments.
      boolean isCommandAlias​(java.lang.String command)
      Checks if an alias is a known command alias.
      boolean isCommandOrScript​(java.lang.String command)
      Checks if a command or script is known to this registry.
      boolean isCommandOrScript​(org.jline.reader.ParsedLine line)
      Checks if a parsed line contains a command or script that is known to this registry.
      void register​(java.lang.String command, CommandRegistry subcommandRegistry)
      Register subcommand registry
      void rename​(SystemRegistryImpl.Pipe pipe, java.lang.String name)  
      void setCommandRegistries​(CommandRegistry... commandRegistries)
      Sets the command registries to be used by this system registry.
      void setConsoleOption​(java.lang.String name, java.lang.Object value)
      Sets the value of a console option.
      void setGroupCommandsInHelp​(boolean commandGroups)  
      void setScriptDescription​(java.util.function.Function<CmdLine,​CmdDesc> scriptDescription)  
      org.jline.terminal.Terminal terminal()
      Returns the terminal associated with this system registry.
      void trace​(boolean stack, java.lang.Throwable exception)
      Prints an exception on the terminal with control over stack trace display.
      void trace​(java.lang.Throwable exception)
      Prints an exception on the terminal.
      • Methods inherited from class java.lang.Object

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

      • parser

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

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

        protected final java.util.function.Supplier<java.nio.file.Path> workDir
    • Constructor Detail

      • SystemRegistryImpl

        public SystemRegistryImpl​(org.jline.reader.Parser parser,
                                  org.jline.terminal.Terminal terminal,
                                  java.util.function.Supplier<java.nio.file.Path> workDir,
                                  org.jline.builtins.ConfigurationPath configPath)
    • Method Detail

      • getPipeNames

        public java.util.Collection<java.lang.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​(java.io.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 java.util.Set<java.lang.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 java.util.Map<java.lang.String,​java.lang.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 java.lang.Object consoleOption​(java.lang.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​(java.lang.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​(java.lang.String name,
                                     java.lang.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​(java.lang.String command,
                             CommandRegistry subcommandRegistry)
        Register subcommand registry
        Specified by:
        register in interface SystemRegistry
        Parameters:
        command - main command
        subcommandRegistry - subcommand registry
      • commandInfo

        public java.util.List<java.lang.String> commandInfo​(java.lang.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​(java.lang.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​(java.lang.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​(java.util.List<java.lang.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​(java.util.function.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 java.lang.Object invoke​(java.lang.String command,
                                       java.lang.Object... args)
                                throws java.lang.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:
        java.lang.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​(java.lang.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 java.lang.Object execute​(java.lang.String line)
                                 throws java.lang.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:
        java.lang.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​(java.lang.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,
                          java.lang.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