public class CommandParser
extends java.lang.Object
CommandModel
Modifier and Type | Class and Description |
---|---|
static interface |
CommandParser.Converter<T>
An interface for an object which converts a String to a value.
|
Constructor and Description |
---|
CommandParser() |
Modifier and Type | Method and Description |
---|---|
protected void |
conditionalRequirementAbsentUnsatisfied(java.lang.String precedent,
java.lang.String antecedent) |
protected void |
conditionalRequirementPresentUnsatisfied(java.lang.String precedent,
java.lang.String[] antecedents) |
void |
defineConverter(CommandParser.Converter<?> converter)
Defines a converter for a type.
|
void |
defineOption(java.lang.String name)
Defines an unvalued option.
|
void |
defineOption(java.lang.String name,
java.lang.Class<?> type)
Defines an option.
|
void |
defineParameter(java.lang.String name,
java.lang.Class<?> type)
Defines a parameter.
|
void |
defineRequirement(java.lang.String... names)
Defines a requirement that at least one of a list of options or parameters
be present.
|
void |
defineRequirementAbsent(java.lang.String precedent,
java.lang.String... antecedents)
Defines a requirement that if a parameter or option is present then none
of the specified parameters or options may be present.
|
void |
defineRequirementExact(java.lang.String... names)
Defines a requirement that exactly one of a list of options or
parameters be present.
|
void |
defineRequirementPresent(java.lang.String precedent,
java.lang.String... antecedents)
Defines a requirement that if a parameter or option is present then at
least one of the specified parameter or options must be present.
|
void |
defineSuperseding(java.lang.String... options)
Defines a superseding set of options.
|
void |
defineSynonym(java.lang.String name,
java.lang.String synonym)
Defines a synonym for an option.
|
<T> CommandParser.Converter<T> |
getConverter(java.lang.Class<T> type)
Gets the converter defined for a type.
|
java.lang.Class |
getType(java.lang.String name)
Gets the value type of a parameter or option, or null for an unvalued option.
|
protected void |
invalidOption(java.lang.String name) |
boolean |
isArgumentFilesEnabled()
Gets whether argument file support is enabled.
|
boolean |
isDefined(java.lang.String name)
Gets whether a name is a parameter or option.
|
protected void |
missingOptionValue(java.lang.String name,
java.lang.Class type) |
protected java.lang.Object |
optionValueConversionFailed(java.lang.String name,
java.lang.String typeDescription,
java.lang.String argument,
java.lang.Throwable e) |
protected java.lang.Object |
parameterValueConversionFailed(java.lang.String name,
java.lang.String typeDescription,
java.lang.String argument,
java.lang.Throwable e) |
CommandModel |
parse(java.lang.String[] arguments)
Parses a command line.
|
protected void |
requirementsUnsatisfied(java.lang.String[] requirements) |
void |
setArgumentFilesEnabled(boolean argumentFilesEnabled)
Sets whether argument file support is enabled.
|
protected void |
unexpectedParameter(java.lang.String name) |
public void setArgumentFilesEnabled(boolean argumentFilesEnabled)
public void defineConverter(CommandParser.Converter<?> converter)
public void defineOption(java.lang.String name)
name
- The canonical name of the option.java.lang.IllegalArgumentException
- if the name is already defined.defineSynonym(java.lang.String, java.lang.String)
public void defineOption(java.lang.String name, java.lang.Class<?> type)
name
- The canonical name of the option.type
- The type of the option value.java.lang.IllegalArgumentException
- if the name is already defined or
if no converter is defined for the type.defineSynonym(java.lang.String, java.lang.String)
public void defineParameter(java.lang.String name, java.lang.Class<?> type)
name
- The name of the parameter.type
- The type of the parameter.java.lang.IllegalArgumentException
- if the name is already defined,
if no converter is defined for the type,
or if a list parameter is already defined.public void defineSuperseding(java.lang.String... options)
options
- The canonical names of the options in the set.java.lang.IllegalArgumentException
- if a name is not defined or is defined
to belong to another superseding set.public void defineRequirement(java.lang.String... names)
names
- The canonical names of the options or parameters.java.lang.IllegalArgumentException
- if a name is not defined.public void defineRequirementExact(java.lang.String... names)
names
- The canonical names of the options or parameters.java.lang.IllegalArgumentException
- if a name is not defined.public void defineRequirementPresent(java.lang.String precedent, java.lang.String... antecedents)
java.lang.IllegalArgumentException
- if either name is not a parameter or option.public void defineRequirementAbsent(java.lang.String precedent, java.lang.String... antecedents)
java.lang.IllegalArgumentException
- if either name is not defined.public void defineSynonym(java.lang.String name, java.lang.String synonym)
name
- The canonical name of the option.synonym
- An alternative name for the option.java.lang.IllegalArgumentException
- if the name is not defined or if the
synonym is already defined.defineOption(java.lang.String)
public <T> CommandParser.Converter<T> getConverter(java.lang.Class<T> type)
public java.lang.Class getType(java.lang.String name)
name
- The canonical name of the option or parameter.java.lang.IllegalArgumentException
- if the name is not defined.public boolean isArgumentFilesEnabled()
public boolean isDefined(java.lang.String name)
name
- A name.public CommandModel parse(java.lang.String[] arguments) throws CommandException
CommandException
protected void invalidOption(java.lang.String name) throws CommandException
CommandException
protected void missingOptionValue(java.lang.String name, java.lang.Class type) throws CommandException
CommandException
protected java.lang.Object optionValueConversionFailed(java.lang.String name, java.lang.String typeDescription, java.lang.String argument, java.lang.Throwable e) throws CommandException
CommandException
protected void unexpectedParameter(java.lang.String name) throws CommandException
CommandException
protected java.lang.Object parameterValueConversionFailed(java.lang.String name, java.lang.String typeDescription, java.lang.String argument, java.lang.Throwable e) throws CommandException
CommandException
protected void requirementsUnsatisfied(java.lang.String[] requirements) throws CommandException
CommandException
protected void conditionalRequirementPresentUnsatisfied(java.lang.String precedent, java.lang.String[] antecedents) throws CommandException
CommandException
protected void conditionalRequirementAbsentUnsatisfied(java.lang.String precedent, java.lang.String antecedent) throws CommandException
CommandException