net.dpml.cli.option

Class ArgumentImpl

public class ArgumentImpl extends OptionImpl implements Argument

An implementation of an Argument.

Version: @PROJECT-VERSION@

Author: @PUBLISHER-NAME@

Field Summary
static StringDEFAULT_CONSUME_REMAINING
The default token to indicate that remaining arguments should be consumed as values.
static charDEFAULT_INITIAL_SEPARATOR
The default value for the initial separator char.
static charDEFAULT_SUBSEQUENT_SEPARATOR
The default value for the subsequent separator char.
Constructor Summary
ArgumentImpl(String name, String description, int minimum, int maximum, char initialSeparator, char subsequentSeparator, Validator validator, String consumeRemaining, List valueDefaults, int id)
Creates a new Argument instance.
Method Summary
voidappendUsage(StringBuffer buffer, Set helpSettings, Comparator comp)
Appends usage information to the specified StringBuffer
booleancanProcess(WriteableCommandLine commandLine, String argument)
Indicates whether this Option will be able to process the particular argument.
voiddefaults(WriteableCommandLine commandLine)
Adds defaults to a CommandLine.
voiddefaultValues(WriteableCommandLine commandLine, Option option)
Adds defaults to a CommandLine.
StringgetConsumeRemaining()
Return the consume remaining flag.
ListgetDefaultValues()
Return the list of default values.
StringgetDescription()
Returns a description of the option.
chargetInitialSeparator()
Returns the initial separator character or '\0' if no character has been set.
intgetMaximum()
Retrieves the maximum number of values acceptable for a valid Argument
intgetMinimum()
Retrieves the minimum number of values required for a valid Argument
StringgetPreferredName()
The preferred name of an option is used for generating help and usage information.
SetgetPrefixes()
Identifies the argument prefixes that should be considered options.
chargetSubsequentSeparator()
Returns the subsequent separator character.
SetgetTriggers()
Identifies the argument prefixes that should trigger this option.
ValidatorgetValidator()
Return the argument validator.
ListhelpLines(int depth, Set helpSettings, Comparator comp)
Builds up a list of HelpLineImpl instances to be presented by HelpFormatter.
booleanisRequired()
Indicates whether argument values must be present for the CommandLine to be valid.
voidprocess(WriteableCommandLine commandLine, ListIterator args)
Processes String arguments into a CommandLine.
voidprocessValues(WriteableCommandLine commandLine, ListIterator arguments, Option option)
Processes the "README" style element of the argument.
StringstripBoundaryQuotes(String token)
If there are any leading or trailing quotes remove them from the specified token.
voidvalidate(WriteableCommandLine commandLine)
Performs any necessary validation on the values added to the CommandLine.
voidvalidate(WriteableCommandLine commandLine, Option option)
Performs any necessary validation on the values added to the CommandLine.

Field Detail

DEFAULT_CONSUME_REMAINING

public static final String DEFAULT_CONSUME_REMAINING
The default token to indicate that remaining arguments should be consumed as values.

DEFAULT_INITIAL_SEPARATOR

public static final char DEFAULT_INITIAL_SEPARATOR
The default value for the initial separator char.

DEFAULT_SUBSEQUENT_SEPARATOR

public static final char DEFAULT_SUBSEQUENT_SEPARATOR
The default value for the subsequent separator char.

Constructor Detail

ArgumentImpl

public ArgumentImpl(String name, String description, int minimum, int maximum, char initialSeparator, char subsequentSeparator, Validator validator, String consumeRemaining, List valueDefaults, int id)
Creates a new Argument instance.

Parameters: name the name of the argument description a description of the argument minimum the minimum number of values needed to be valid maximum the maximum number of values allowed to be valid initialSeparator the char separating option from value subsequentSeparator the char separating values from each other validator object responsible for validating the values consumeRemaining String used for the "consuming option" group valueDefaults values to be used if none are specified. id the id of the option, 0 implies automatic assignment.

See Also: OptionImpl

Method Detail

appendUsage

public void appendUsage(StringBuffer buffer, Set helpSettings, Comparator comp)
Appends usage information to the specified StringBuffer

Parameters: buffer the buffer to append to helpSettings a set of display settings @see DisplaySetting comp a comparator used to sort the Options

canProcess

public boolean canProcess(WriteableCommandLine commandLine, String argument)
Indicates whether this Option will be able to process the particular argument.

Parameters: commandLine the CommandLine object to store defaults in argument the argument to be tested

Returns: true if the argument can be processed by this Option

defaults

public void defaults(WriteableCommandLine commandLine)
Adds defaults to a CommandLine.

Parameters: commandLine the CommandLine object to store defaults in.

defaultValues

public void defaultValues(WriteableCommandLine commandLine, Option option)
Adds defaults to a CommandLine.

Parameters: commandLine the CommandLine object to store defaults in. option the Option to store the defaults against.

getConsumeRemaining

public String getConsumeRemaining()
Return the consume remaining flag.

Returns: the consume remaining flag

getDefaultValues

public List getDefaultValues()
Return the list of default values.

Returns: the default values

getDescription

public String getDescription()
Returns a description of the option. This string is used to build help messages as in the HelpFormatter.

Returns: a description of the option.

See Also: HelpFormatter

getInitialSeparator

public char getInitialSeparator()
Returns the initial separator character or '\0' if no character has been set.

Returns: char the initial separator character

getMaximum

public int getMaximum()
Retrieves the maximum number of values acceptable for a valid Argument

Returns: the maximum number of values

getMinimum

public int getMinimum()
Retrieves the minimum number of values required for a valid Argument

Returns: the minimum number of values

getPreferredName

public String getPreferredName()
The preferred name of an option is used for generating help and usage information.

Returns: The preferred name of the option

getPrefixes

public Set getPrefixes()
Identifies the argument prefixes that should be considered options. This is used to identify whether a given string looks like an option or an argument value. Typically an option would return the set [--,-] while switches might offer [-,+]. The returned Set must not be null.

Returns: The set of prefixes for this Option

getSubsequentSeparator

public char getSubsequentSeparator()
Returns the subsequent separator character.

Returns: the subsequent separator character

getTriggers

public Set getTriggers()
Identifies the argument prefixes that should trigger this option. This is used to decide which of many Options should be tried when processing a given argument string. The returned Set must not be null.

Returns: The set of triggers for this Option

getValidator

public Validator getValidator()
Return the argument validator.

Returns: the validator

helpLines

public List helpLines(int depth, Set helpSettings, Comparator comp)
Builds up a list of HelpLineImpl instances to be presented by HelpFormatter.

Parameters: depth the initial indent depth helpSettings the HelpSettings that should be applied comp a comparator used to sort options when applicable.

Returns: a List of HelpLineImpl objects

See Also: HelpLine HelpFormatter

isRequired

public boolean isRequired()
Indicates whether argument values must be present for the CommandLine to be valid.

Returns: true iff the CommandLine will be invalid without at least one value

See Also: getMinimum getMaximum

process

public void process(WriteableCommandLine commandLine, ListIterator args)
Processes String arguments into a CommandLine. The iterator will initially point at the first argument to be processed and at the end of the method should point to the first argument not processed. This method MUST process at least one argument from the ListIterator.

Parameters: commandLine the CommandLine object to store results in args the arguments to process

Throws: OptionException if any problems occur

processValues

public void processValues(WriteableCommandLine commandLine, ListIterator arguments, Option option)
Processes the "README" style element of the argument. Values identified should be added to the CommandLine object in association with this Argument.

Parameters: commandLine The CommandLine object to store results in. arguments The arguments to process. option The option to register value against.

Throws: OptionException if any problems occur.

See Also:

stripBoundaryQuotes

public String stripBoundaryQuotes(String token)
If there are any leading or trailing quotes remove them from the specified token.

Parameters: token the token to strip leading and trailing quotes

Returns: String the possibly modified token

validate

public void validate(WriteableCommandLine commandLine)
Performs any necessary validation on the values added to the CommandLine. Validation will typically involve using the CommandLine.getValues(option) method to retrieve the values and then either checking each value. Optionally the String value can be replaced by another Object such as a Number instance or a File instance.

Parameters: commandLine The CommandLine object to query.

Throws: OptionException if any problems occur.

See Also:

validate

public void validate(WriteableCommandLine commandLine, Option option)
Performs any necessary validation on the values added to the CommandLine. Validation will typically involve using the CommandLine.getValues(option) method to retrieve the values and then either checking each value. Optionally the String value can be replaced by another Object such as a Number instance or a File instance.

Parameters: commandLine The CommandLine object to query. option The option to lookup values with.

Throws: OptionException if any problems occur.

See Also: