Interface CommandRegistry
- All Known Subinterfaces:
ConsoleEngine
,SystemRegistry
- All Known Implementing Classes:
AbstractCommandRegistry
,Builtins
,ConsoleEngineImpl
,DefaultPrinter
,JlineCommandRegistry
,SimpleSystemRegistryImpl
,SystemRegistryImpl
The CommandRegistry provides methods for managing a set of commands, including:
- Registering commands and their aliases
- Providing command descriptions and usage information
- Executing commands with arguments
- Creating command completers for tab completion
Implementations of this interface can be used to create custom command registries for specific domains or applications.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic class
Class representing a command execution session. -
Method Summary
Modifier and TypeMethodDescriptionstatic SystemCompleter
aggregateCompleters
(CommandRegistry... commandRegistries) Aggregates SystemCompleters from multiple command registries into a single completer.Returns a map of alias-to-command names known by this registry.commandDescription
(List<String> args) Returns a command description for use in the JLine Widgets framework.commandInfo
(String command) Returns a short info about command known by this registry.Returns the command names known by this registry.Returns aSystemCompleter
that can provide detailed completion information for all registered commands.static SystemCompleter
compileCompleters
(CommandRegistry... commandRegistries) Aggregates and compiles SystemCompleters from multiple command registries into a single completer.static Candidate
createCandidate
(CommandRegistry[] commandRegistries, String command) Creates a completion candidate for the specified command.boolean
hasCommand
(String command) Returns whether a command with the specified name is known to this registry.default Object
invoke
(CommandRegistry.CommandSession session, String command, Object... args) Execute a command.default String
name()
Returns the name of this registry.
-
Method Details
-
aggregateCompleters
Aggregates SystemCompleters from multiple command registries into a single completer.This method combines the completers from all provided command registries without compiling them. The resulting completer can be used for tab completion across all commands from the provided registries.
- Parameters:
commandRegistries
- the command registries whose completers are to be aggregated- Returns:
- an uncompiled SystemCompleter containing all completers from the provided registries
-
compileCompleters
Aggregates and compiles SystemCompleters from multiple command registries into a single completer.This method combines the completers from all provided command registries and compiles them into a single completer. The resulting completer can be used for tab completion across all commands from the provided registries.
- Parameters:
commandRegistries
- the command registries whose completers are to be aggregated and compiled- Returns:
- a compiled SystemCompleter containing all completers from the provided registries
-
createCandidate
Creates a completion candidate for the specified command.This method searches for the command in the provided registries and creates a completion candidate with the command's name, group, and description.
- Parameters:
commandRegistries
- the command registries to search for the commandcommand
- the command name- Returns:
- a completion candidate for the command
-
name
Returns the name of this registry.- Returns:
- the name of the registry
-
commandNames
Returns the command names known by this registry.- Returns:
- the set of known command names, excluding aliases
-
commandAliases
Returns a map of alias-to-command names known by this registry.- Returns:
- a map with alias keys and command name values
-
commandInfo
Returns a short info about command known by this registry.- Parameters:
command
- the command name- Returns:
- a short info about command
-
hasCommand
Returns whether a command with the specified name is known to this registry.- Parameters:
command
- the command name to test- Returns:
- true if the specified command is registered
-
compileCompleters
SystemCompleter compileCompleters()Returns aSystemCompleter
that can provide detailed completion information for all registered commands.- Returns:
- a SystemCompleter that can provide command completion for all registered commands
-
commandDescription
Returns a command description for use in the JLine Widgets framework. Default method must be overridden to return sub command descriptions.- Parameters:
args
- command (args[0]) and its arguments- Returns:
- command description for JLine TailTipWidgets to be displayed in the terminal status bar.
-
invoke
default Object invoke(CommandRegistry.CommandSession session, String command, Object... args) throws Exception Execute a command.- Parameters:
session
- the data of the current command sessioncommand
- the name of the commandargs
- arguments of the command- Returns:
- result of the command execution
- Throws:
Exception
- in case of error
-