Class DefaultOptionParser
- java.lang.Object
-
- com.aspectran.shell.command.option.DefaultOptionParser
-
- All Implemented Interfaces:
OptionParser
public class DefaultOptionParser extends java.lang.Object implements OptionParser
The default command option parser.
-
-
Constructor Summary
Constructors Constructor Description DefaultOptionParser()
Creates a new DefaultParser instance with partial matching enabled.DefaultOptionParser(boolean allowPartialMatching)
Create a new DefaultParser instance with the specified partial matching policy.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
checkRequiredOptions()
Throws aMissingOptionException
if all of the required options are not present.protected void
handleConcatenatedOptions(java.lang.String token)
Breakstoken
into its constituent parts using the following algorithm.ParsedOptions
parse(Options options, java.lang.String[] arguments)
Parse the arguments according to the specified options.ParsedOptions
parse(Options options, java.lang.String[] arguments, boolean stopAtNonOption)
Parse the arguments according to the specified options.ParsedOptions
parse(Options options, java.lang.String[] arguments, java.util.Properties properties)
Parse the arguments according to the specified options and properties.ParsedOptions
parse(Options options, java.lang.String[] arguments, java.util.Properties properties, boolean stopAtNonOption)
Parse the arguments according to the specified options and properties.
-
-
-
Constructor Detail
-
DefaultOptionParser
public DefaultOptionParser()
Creates a new DefaultParser instance with partial matching enabled. By "partial matching" we mean that given the following code:Options options = new Options(); options.addOption(new Option("d", "debug", false, "Turn on debug.")); options.addOption(new Option("e", "extract", false, "Turn on extract.")); options.addOption(new Option("o", "option", true, "Turn on option with argument."));
-de
only matches the"debug"
option. However, with "partial matching" disabled,-de
would enable bothdebug
as well asextract
options.
-
DefaultOptionParser
public DefaultOptionParser(boolean allowPartialMatching)
Create a new DefaultParser instance with the specified partial matching policy. By "partial matching" we mean that given the following code:Options options = new Options(); options.addOption(new Option("d", "debug", false, "Turn on debug.")); options.addOption(new Option("e", "extract", false, "Turn on extract.")); options.addOption(new Option("o", "option", true, "Turn on option with argument."));
-de
only matches the"debug"
option. However, with "partial matching" disabled,-de
would enable bothdebug
as well asextract
options.- Parameters:
allowPartialMatching
- if partial matching of long options shall be enabled
-
-
Method Detail
-
parse
public ParsedOptions parse(Options options, java.lang.String[] arguments) throws OptionParserException
Description copied from interface:OptionParser
Parse the arguments according to the specified options.- Specified by:
parse
in interfaceOptionParser
- Parameters:
options
- the specified Optionsarguments
- the command line arguments- Returns:
- the list of atomic option and value tokens
- Throws:
OptionParserException
- if there are any problems encountered while parsing the command line tokens
-
parse
public ParsedOptions parse(Options options, java.lang.String[] arguments, java.util.Properties properties) throws OptionParserException
Parse the arguments according to the specified options and properties.- Specified by:
parse
in interfaceOptionParser
- Parameters:
options
- the specified Optionsarguments
- the command line argumentsproperties
- command line option name-value pairs- Returns:
- the list of atomic option and value tokens
- Throws:
OptionParserException
- if there are any problems encountered while parsing the command line tokens
-
parse
public ParsedOptions parse(Options options, java.lang.String[] arguments, boolean stopAtNonOption) throws OptionParserException
Description copied from interface:OptionParser
Parse the arguments according to the specified options.- Specified by:
parse
in interfaceOptionParser
- Parameters:
options
- the specified Optionsarguments
- the command line argumentsstopAtNonOption
- iftrue
an unrecognized argument stops the parsing and the remaining arguments are added to theParsedOptions
s args list. Iffalse
an unrecognized argument triggers a ParseException.- Returns:
- the list of atomic option and value tokens
- Throws:
OptionParserException
- if there are any problems encountered while parsing the command line tokens
-
parse
public ParsedOptions parse(Options options, java.lang.String[] arguments, java.util.Properties properties, boolean stopAtNonOption) throws OptionParserException
Parse the arguments according to the specified options and properties.- Specified by:
parse
in interfaceOptionParser
- Parameters:
options
- the specified Optionsarguments
- the command line argumentsproperties
- command line option name-value pairsstopAtNonOption
- iftrue
an unrecognized argument stops the parsing and the remaining arguments are added to theParsedOptions
s args list. Iffalse
an unrecognized argument triggers a ParseException.- Returns:
- the list of atomic option and value tokens
- Throws:
OptionParserException
- if there are any problems encountered while parsing the command line tokens
-
checkRequiredOptions
protected void checkRequiredOptions() throws MissingOptionException
Throws aMissingOptionException
if all of the required options are not present.- Throws:
MissingOptionException
- if any of the required Options are not present
-
handleConcatenatedOptions
protected void handleConcatenatedOptions(java.lang.String token) throws OptionParserException
Breakstoken
into its constituent parts using the following algorithm.- for each remaining character check if an
Option
exists with that id. - if an
Option
does exist then add that character prepended with "-" to the list of processed tokens. - if the
Option
can have an argument value and there are remaining characters in the token then add the remaining characters as a token to the list of processed tokens. - if an
Option
does NOT exist ANDstopAtNonOption
IS set then add the special token "--" followed by the remaining characters and also the remaining tokens directly to the processed tokens list. - if an
Option
does NOT exist ANDstopAtNonOption
IS NOT set then add that character prepended with "-".
- Parameters:
token
- the current token to be burst at the first non-Option encountered- Throws:
OptionParserException
- if there are any problems encountered while parsing the command line token
- for each remaining character check if an
-
-