public class CmdlineParser
extends java.lang.Object
parse(String...).
The command line will be parsed and validated based on configuration objects
which are annotated with CmdOption-specific annotations, which are:
Each parsed option will be directly applied to the corresponding method or
field. The configuration objects are typically provided as constructor
arguments, but it is also possible to use the addObject(Object...)
method to add additional configuration objects.| Modifier | Constructor and Description |
|---|---|
protected |
CmdlineParser(CmdlineParser parent,
java.lang.String commandName,
java.lang.Object commandObject) |
|
CmdlineParser(java.lang.Object... objects)
Create a new commandline parser instance and scan all given object for
supported options, parameters and commands using the pre-registered
default handlers.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addObject(java.lang.Object... objects)
Add an additional configuration object containing CmdOption-specific
annotations to the configuration.
|
void |
commandUsage(java.lang.Class<?> command) |
protected boolean |
containsMethod(java.lang.Iterable<java.lang.reflect.Method> methods,
java.lang.reflect.Method method) |
java.util.List<CmdOptionHandler> |
defaultHandlers() |
protected CmdOptionHandler |
findHandler(java.lang.reflect.AccessibleObject element,
int argsCount,
java.lang.Class<? extends CmdOptionHandler> cmdOptionHandlerType) |
protected java.lang.reflect.Method |
findMethod(java.lang.Iterable<java.lang.reflect.Method> methods,
java.lang.reflect.Method method) |
CmdlineModel |
getCmdlineModel() |
java.lang.String |
getParsedCommandName() |
java.lang.Object |
getParsedCommandObject() |
protected boolean |
isPackagePrivate(java.lang.reflect.Method method) |
protected boolean |
isPrivate(java.lang.reflect.Method method) |
protected boolean |
isPublicOrProtected(java.lang.reflect.Method method) |
protected boolean |
isVisible(java.lang.Class<?> baseClass,
java.lang.reflect.Member element) |
void |
parse(boolean dryrun,
boolean detectHelpAndSkipValidation,
java.lang.String... cmdline) |
void |
parse(java.lang.String... cmdline) |
void |
registerHandler(CmdOptionHandler handler)
Register a new CmdOptionHandler.
|
protected void |
scanCommand(java.lang.Object object) |
protected void |
scanOptions(java.lang.Object object) |
void |
setAboutLine(java.lang.String aboutLine)
An additional text displayed at the top of the usage/help display.
|
void |
setDebugMode(boolean debugMode)
Programmatically enable or disable the debug mode.
|
void |
setDebugModeAllowed(boolean debugAllowed)
Allow or disallow the recognition of a request of the debug mode via the
special command line option --CMDOPTION_DEBUG.
|
void |
setDefaultCommandClass(java.lang.Class<?> defaultCommandClass) |
void |
setDefaultCommandName(java.lang.String defaultCommandName) |
void |
setProgramName(java.lang.String programName)
Set the name of the program is usually called on the command line.
|
void |
setReadArgsFromFilePrefix(java.lang.String prefix)
Set the argument prefix used to mark a cmdline argument as file which
contains more commandline parameters.
|
void |
setResourceBundle(java.util.ResourceBundle resourceBundle) |
void |
setResourceBundle(java.lang.String resourceBundleName,
java.lang.ClassLoader classloader) |
void |
setResourceBundle(java.lang.String resourceBundleName,
java.util.Locale locale,
java.lang.ClassLoader classloader) |
void |
setUsageFormatter(UsageFormatter usageFormatter) |
void |
unregisterAllHandler() |
void |
unregisterHandler(java.lang.Class<? extends CmdOptionHandler> type) |
void |
usage() |
void |
usage(java.lang.StringBuilder output) |
protected void |
validateOptions() |
protected CmdlineParser(CmdlineParser parent, java.lang.String commandName, java.lang.Object commandObject)
public CmdlineParser(java.lang.Object... objects)
addObject(Object...) method after you registered the desired set
of handlers.objects - The configuration objects containing supported annotations.public java.util.List<CmdOptionHandler> defaultHandlers()
public void setDebugMode(boolean debugMode)
public void setDebugModeAllowed(boolean debugAllowed)
public void setUsageFormatter(UsageFormatter usageFormatter)
public void setDefaultCommandName(java.lang.String defaultCommandName)
public void setDefaultCommandClass(java.lang.Class<?> defaultCommandClass)
public void parse(java.lang.String... cmdline)
public void parse(boolean dryrun,
boolean detectHelpAndSkipValidation,
java.lang.String... cmdline)
public java.lang.String getParsedCommandName()
public java.lang.Object getParsedCommandObject()
protected CmdOptionHandler findHandler(java.lang.reflect.AccessibleObject element, int argsCount, java.lang.Class<? extends CmdOptionHandler> cmdOptionHandlerType)
public void addObject(java.lang.Object... objects)
objects - protected void scanCommand(java.lang.Object object)
protected void validateOptions()
protected boolean isVisible(java.lang.Class<?> baseClass,
java.lang.reflect.Member element)
protected boolean isPublicOrProtected(java.lang.reflect.Method method)
protected boolean isPackagePrivate(java.lang.reflect.Method method)
protected boolean isPrivate(java.lang.reflect.Method method)
protected boolean containsMethod(java.lang.Iterable<java.lang.reflect.Method> methods,
java.lang.reflect.Method method)
protected java.lang.reflect.Method findMethod(java.lang.Iterable<java.lang.reflect.Method> methods,
java.lang.reflect.Method method)
protected void scanOptions(java.lang.Object object)
public void unregisterAllHandler()
public void unregisterHandler(java.lang.Class<? extends CmdOptionHandler> type)
public void registerHandler(CmdOptionHandler handler)
addObject(Object...).public void commandUsage(java.lang.Class<?> command)
public void usage()
public void usage(java.lang.StringBuilder output)
public CmdlineModel getCmdlineModel()
public void setProgramName(java.lang.String programName)
public void setAboutLine(java.lang.String aboutLine)
public void setResourceBundle(java.lang.String resourceBundleName,
java.lang.ClassLoader classloader)
public void setResourceBundle(java.lang.String resourceBundleName,
java.util.Locale locale,
java.lang.ClassLoader classloader)
public void setResourceBundle(java.util.ResourceBundle resourceBundle)
public void setReadArgsFromFilePrefix(java.lang.String prefix)
"@" sign. You can also disable this feature by setting
null or the empty string.
The file contains additional arguments, each one on a new line.prefix - The prefix to mark an argument as arguments-file or
null to disable the feature.