org.apache.commons.cli

Class Parser

Implemented Interfaces:
CommandLineParser
Known Direct Subclasses:
BasicParser, GnuParser, PosixParser

public abstract class Parser
extends java.lang.Object
implements CommandLineParser

Parser creates CommandLines.
Version:
$Revision: 551815 $
Author:
John Keyes (john at integralsource.com)
See Also:
Parser

Field Summary

private CommandLine
cmd
commandline instance
private Options
options
current Options
private List
requiredOptions
list of required options strings

Method Summary

private void
checkRequiredOptions()
Throws a MissingOptionException if all of the required options are no present.
protected abstract String[]
flatten(Options opts, String[] arguments, boolean stopAtNonOption)
Subclasses must implement this method to reduce the arguments that have been passed to the parse method.
CommandLine
parse(Options options, String[] arguments)
Parses the specified arguments based on the specifed Options.
CommandLine
parse(Options options, String[] arguments, Properties properties)
Parse the arguments according to the specified options and properties.
CommandLine
parse(Options options, String[] arguments, Properties properties, boolean stopAtNonOption)
Parse the arguments according to the specified options and properties.
CommandLine
parse(Options options, String[] arguments, boolean stopAtNonOption)
Parses the specified arguments based on the specifed Options.
void
processArgs(Option opt, ListIterator iter)
Process the argument values for the specified Option opt using the values retrieved from the specified iterator iter.
private void
processOption(String arg, ListIterator iter)
Process the Option specified by arg using the values retrieved from the specfied iterator iter.
private void
processProperties(Properties properties)
Sets the values of Options using the values in properties.

Field Details

cmd

private CommandLine cmd
commandline instance

options

private Options options
current Options

requiredOptions

private List requiredOptions
list of required options strings

Method Details

checkRequiredOptions

private void checkRequiredOptions()
            throws MissingOptionException
Throws a MissingOptionException if all of the required options are no present.
Throws:
MissingOptionException - if any of the required Options are not present.

flatten

protected abstract String[] flatten(Options opts,
                                    String[] arguments,
                                    boolean stopAtNonOption)
Subclasses must implement this method to reduce the arguments that have been passed to the parse method.
Parameters:
opts - The Options to parse the arguments by.
arguments - The arguments that have to be flattened.
stopAtNonOption - specifies whether to stop flattening when a non option has been encountered
Returns:
a String array of the flattened arguments

parse

public CommandLine parse(Options options,
                         String[] arguments)
            throws ParseException
Parses the specified arguments based on the specifed Options.
Specified by:
parse in interface CommandLineParser
Parameters:
options - the Options
arguments - the arguments
Returns:
the CommandLine
Throws:
ParseException - if an error occurs when parsing the arguments.

parse

public CommandLine parse(Options options,
                         String[] arguments,
                         Properties properties)
            throws ParseException
Parse the arguments according to the specified options and properties.
Parameters:
options - the specified Options
arguments - the command line arguments
properties - command line option name-value pairs
Returns:
the list of atomic option and value tokens
Throws:
ParseException - if there are any problems encountered while parsing the command line tokens.

parse

public CommandLine parse(Options options,
                         String[] arguments,
                         Properties properties,
                         boolean stopAtNonOption)
            throws ParseException
Parse the arguments according to the specified options and properties.
Parameters:
options - the specified Options
arguments - the command line arguments
properties - command line option name-value pairs
stopAtNonOption - stop parsing the arguments when the first non option is encountered.
Returns:
the list of atomic option and value tokens
Throws:
ParseException - if there are any problems encountered while parsing the command line tokens.

parse

public CommandLine parse(Options options,
                         String[] arguments,
                         boolean stopAtNonOption)
            throws ParseException
Parses the specified arguments based on the specifed Options.
Specified by:
parse in interface CommandLineParser
Parameters:
options - the Options
arguments - the arguments
stopAtNonOption - specifies whether to stop interpreting the arguments when a non option has been encountered and to add them to the CommandLines args list.
Returns:
the CommandLine
Throws:
ParseException - if an error occurs when parsing the arguments.

processArgs

public void processArgs(Option opt,
                        ListIterator iter)
            throws ParseException
Process the argument values for the specified Option opt using the values retrieved from the specified iterator iter.
Parameters:
opt - The current Option
iter - The iterator over the flattened command line Options.
Throws:
ParseException - if an argument value is required and it is has not been found.

processOption

private void processOption(String arg,
                           ListIterator iter)
            throws ParseException
Process the Option specified by arg using the values retrieved from the specfied iterator iter.
Parameters:
arg - The String value representing an Option
iter - The iterator over the flattened command line arguments.
Throws:
ParseException - if arg does not represent an Option

processProperties

private void processProperties(Properties properties)
Sets the values of Options using the values in properties.
Parameters:
properties - The value properties to be processed.