Interface CommandRegistry
-
- All Known Subinterfaces:
ConsoleEngine
,SystemRegistry
- All Known Implementing Classes:
AbstractCommandRegistry
,Builtins
,ConsoleEngineImpl
,DefaultPrinter
,JlineCommandRegistry
,SimpleSystemRegistryImpl
,SystemRegistryImpl
public interface CommandRegistry
Interface for registering, describing, and executing commands in a console application.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 Classes Modifier and Type Interface Description static class
CommandRegistry.CommandSession
Class representing a command execution session.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description static org.jline.reader.impl.completer.SystemCompleter
aggregateCompleters(CommandRegistry... commandRegistries)
Aggregates SystemCompleters from multiple command registries into a single completer.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.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 aSystemCompleter
that can provide detailed completion information for all registered commands.static org.jline.reader.impl.completer.SystemCompleter
compileCompleters(CommandRegistry... commandRegistries)
Aggregates and compiles SystemCompleters from multiple command registries into a single completer.static org.jline.reader.Candidate
createCandidate(CommandRegistry[] commandRegistries, java.lang.String command)
Creates a completion candidate for the specified command.boolean
hasCommand(java.lang.String command)
Returns whether a command with the specified name is known to this registry.default java.lang.Object
invoke(CommandRegistry.CommandSession session, java.lang.String command, java.lang.Object... args)
Execute a command.default java.lang.String
name()
Returns the name of this registry.
-
-
-
Method Detail
-
aggregateCompleters
static org.jline.reader.impl.completer.SystemCompleter aggregateCompleters(CommandRegistry... commandRegistries)
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
static org.jline.reader.impl.completer.SystemCompleter compileCompleters(CommandRegistry... commandRegistries)
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
static org.jline.reader.Candidate createCandidate(CommandRegistry[] commandRegistries, java.lang.String command)
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
default java.lang.String name()
Returns the name of this registry.- Returns:
- the name of the registry
-
commandNames
java.util.Set<java.lang.String> commandNames()
Returns the command names known by this registry.- Returns:
- the set of known command names, excluding aliases
-
commandAliases
java.util.Map<java.lang.String,java.lang.String> commandAliases()
Returns a map of alias-to-command names known by this registry.- Returns:
- a map with alias keys and command name values
-
commandInfo
java.util.List<java.lang.String> commandInfo(java.lang.String command)
Returns a short info about command known by this registry.- Parameters:
command
- the command name- Returns:
- a short info about command
-
hasCommand
boolean hasCommand(java.lang.String command)
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
org.jline.reader.impl.completer.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
CmdDesc commandDescription(java.util.List<java.lang.String> args)
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 java.lang.Object invoke(CommandRegistry.CommandSession session, java.lang.String command, java.lang.Object... args) throws java.lang.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:
java.lang.Exception
- in case of error
-
-