Interface CommandDispatcher

All Superinterfaces:
AutoCloseable
All Known Implementing Classes:
DefaultCommandDispatcher

public interface CommandDispatcher extends AutoCloseable
Central dispatcher that aggregates CommandGroups and handles command resolution, execution, and completion.

CommandDispatcher separates the aggregation and dispatch role from individual command semantics defined in Command and CommandGroup.

Example:

 CommandDispatcher dispatcher = new DefaultCommandDispatcher(terminal);
 dispatcher.addGroup(myGroup);
 Object result = dispatcher.execute("echo hello | grep h");
 
Since:
4.0
See Also:
  • Method Details

    • addGroup

      void addGroup(CommandGroup group)
      Adds a command group to this dispatcher.
      Parameters:
      group - the command group to add
    • groups

      List<CommandGroup> groups()
      Returns all registered command groups.
      Returns:
      the list of command groups
    • findCommand

      default Command findCommand(String name)
      Finds a command by name or alias across all registered groups.
      Parameters:
      name - the command name or alias
      Returns:
      the command, or null if not found
    • execute

      Object execute(String line) throws Exception
      Executes a command line string.

      The dispatcher parses the line (potentially into a pipeline) and executes the commands.

      Parameters:
      line - the command line to execute
      Returns:
      the result of execution
      Throws:
      Exception - if execution fails
    • execute

      Object execute(Pipeline pipeline) throws Exception
      Executes a pre-parsed pipeline.
      Parameters:
      pipeline - the pipeline to execute
      Returns:
      the result of execution
      Throws:
      Exception - if execution fails
    • completer

      Completer completer()
      Returns a completer that provides tab completion across all registered commands.
      Returns:
      the aggregated completer
    • describe

      CommandDescription describe(CommandLine commandLine)
      Returns a description for the command at the current command line position.

      Used by widgets for context-sensitive help.

      Parameters:
      commandLine - the parsed command line
      Returns:
      the command description, or null
    • terminal

      Terminal terminal()
      Returns the terminal associated with this dispatcher.
      Returns:
      the terminal
    • initialize

      default void initialize(File script) throws Exception
      Initializes the dispatcher, optionally executing a startup script.
      Parameters:
      script - the initialization script, or null
      Throws:
      Exception - if initialization fails
    • cleanUp

      default void cleanUp()
      Performs cleanup between command executions (e.g., resetting state).
    • errorStyle

      default AttributedStyle errorStyle()
      Returns:
      A AttributedStyle to be used when printing exception messages.
    • trace

      default void trace(Throwable exception)
      Traces an exception (e.g., prints it to the terminal).
      Parameters:
      exception - the exception to trace
    • close

      void close()
      Closes this dispatcher and releases resources.
      Specified by:
      close in interface AutoCloseable