public class Option
extends java.lang.Object
implements java.lang.Cloneable, java.io.Serializable
An Option is not created independently, but is created through
an instance of Options
. An Option is required to have
at least a short or a long-name.
Note: once an Option
has been added to an instance
of Options
, it's required flag may not be changed anymore.
Options
,
CommandLine
,
Serialized FormModifier and Type | Class and Description |
---|---|
static class |
Option.Builder
A nested builder class to create
Option instances
using descriptive methods. |
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
argName
the name of the argument for this option
|
private java.lang.String |
description
description of the option
|
private java.lang.String |
longOpt
the long representation of the option
|
private int |
numberOfArgs
the number of argument values this option can have
|
private java.lang.String |
opt
the name of the option
|
private boolean |
optionalArg
specifies whether the argument value of this Option is optional
|
private boolean |
required
specifies whether this option is required to be present
|
private static long |
serialVersionUID
The serial version UID.
|
private java.lang.Class<?> |
type
the type of this Option
|
static int |
UNINITIALIZED
constant that specifies the number of argument values has not been specified
|
static int |
UNLIMITED_VALUES
constant that specifies the number of argument values is infinite
|
private java.util.List<java.lang.String> |
values
the list of argument values
|
private char |
valuesep
the character that is the value separator
|
Modifier | Constructor and Description |
---|---|
private |
Option(Option.Builder builder)
Private constructor used by the nested Builder class.
|
|
Option(java.lang.String opt,
boolean hasArg,
java.lang.String description)
Creates an Option using the specified parameters.
|
|
Option(java.lang.String opt,
java.lang.String description)
Creates an Option using the specified parameters.
|
|
Option(java.lang.String opt,
java.lang.String longOpt,
boolean hasArg,
java.lang.String description)
Creates an Option using the specified parameters.
|
Modifier and Type | Method and Description |
---|---|
(package private) boolean |
acceptsArg()
Tells if the option can accept more arguments.
|
private void |
add(java.lang.String value)
Add the value to this Option.
|
boolean |
addValue(java.lang.String value)
Deprecated.
|
(package private) void |
addValueForProcessing(java.lang.String value)
Adds the specified value to this Option.
|
static Option.Builder |
builder()
Returns a
Option.Builder to create an Option using descriptive
methods. |
static Option.Builder |
builder(java.lang.String opt)
Returns a
Option.Builder to create an Option using descriptive
methods. |
(package private) void |
clearValues()
Clear the Option values.
|
java.lang.Object |
clone()
A rather odd clone method - due to incorrect code in 1.0 it is public
and in 1.1 rather than throwing a CloneNotSupportedException it throws
a RuntimeException so as to maintain backwards compat at the API level.
|
boolean |
equals(java.lang.Object o) |
java.lang.String |
getArgName()
Gets the display name for the argument value.
|
int |
getArgs()
Returns the number of argument values this Option can take.
|
java.lang.String |
getDescription()
Retrieve the self-documenting description of this Option
|
int |
getId()
Returns the id of this Option.
|
(package private) java.lang.String |
getKey()
Returns the 'unique' Option identifier.
|
java.lang.String |
getLongOpt()
Retrieve the long name of this Option.
|
java.lang.String |
getOpt()
Retrieve the name of this Option.
|
java.lang.Object |
getType()
Retrieve the type of this Option.
|
java.lang.String |
getValue()
Returns the specified value of this Option or
null if there is no value. |
java.lang.String |
getValue(int index)
Returns the specified value of this Option or
null if there is no value. |
java.lang.String |
getValue(java.lang.String defaultValue)
Returns the value/first value of this Option or the
defaultValue if there is no value. |
java.lang.String[] |
getValues()
Return the values of this Option as a String array
or null if there are no values
|
char |
getValueSeparator()
Returns the value separator character.
|
java.util.List<java.lang.String> |
getValuesList() |
boolean |
hasArg()
Query to see if this Option requires an argument
|
boolean |
hasArgName()
Returns whether the display name for the argument value has been set.
|
boolean |
hasArgs()
Query to see if this Option can take many values.
|
int |
hashCode() |
boolean |
hasLongOpt()
Query to see if this Option has a long name
|
private boolean |
hasNoValues()
Returns whether this Option has any values.
|
boolean |
hasOptionalArg() |
boolean |
hasValueSeparator()
Return whether this Option has specified a value separator.
|
boolean |
isRequired()
Query to see if this Option is mandatory
|
private void |
processValue(java.lang.String value)
Processes the value.
|
(package private) boolean |
requiresArg()
Tells if the option requires more arguments to be valid.
|
void |
setArgName(java.lang.String argName)
Sets the display name for the argument value.
|
void |
setArgs(int num)
Sets the number of argument values this Option can take.
|
void |
setDescription(java.lang.String description)
Sets the self-documenting description of this Option
|
void |
setLongOpt(java.lang.String longOpt)
Sets the long name of this Option.
|
void |
setOptionalArg(boolean optionalArg)
Sets whether this Option can have an optional argument.
|
void |
setRequired(boolean required)
Sets whether this Option is mandatory.
|
void |
setType(java.lang.Class<?> type)
Sets the type of this Option.
|
void |
setType(java.lang.Object type)
Deprecated.
since 1.3, use
setType(Class) instead |
void |
setValueSeparator(char sep)
Sets the value separator.
|
java.lang.String |
toString()
Dump state, suitable for debugging.
|
public static final int UNINITIALIZED
public static final int UNLIMITED_VALUES
private static final long serialVersionUID
private final java.lang.String opt
private java.lang.String longOpt
private java.lang.String argName
private java.lang.String description
private boolean required
private boolean optionalArg
private int numberOfArgs
private java.lang.Class<?> type
private java.util.List<java.lang.String> values
private char valuesep
private Option(Option.Builder builder)
builder
- builder used to create this optionpublic Option(java.lang.String opt, java.lang.String description) throws java.lang.IllegalArgumentException
opt
- short representation of the optiondescription
- describes the function of the optionjava.lang.IllegalArgumentException
- if there are any non valid
Option characters in opt
.public Option(java.lang.String opt, boolean hasArg, java.lang.String description) throws java.lang.IllegalArgumentException
opt
- short representation of the optionhasArg
- specifies whether the Option takes an argument or notdescription
- describes the function of the optionjava.lang.IllegalArgumentException
- if there are any non valid
Option characters in opt
.public Option(java.lang.String opt, java.lang.String longOpt, boolean hasArg, java.lang.String description) throws java.lang.IllegalArgumentException
opt
- short representation of the optionlongOpt
- the long representation of the optionhasArg
- specifies whether the Option takes an argument or notdescription
- describes the function of the optionjava.lang.IllegalArgumentException
- if there are any non valid
Option characters in opt
.public int getId()
java.lang.String getKey()
public java.lang.String getOpt()
CommandLine.hasOption(String opt)
and
CommandLine.getOptionValue(String opt)
to check
for existence and argument.public java.lang.Object getType()
@Deprecated public void setType(java.lang.Object type)
setType(Class)
instead
Note: this method is kept for binary compatibility and the
input type is supposed to be a Class
object.
type
- the type of this Optionpublic void setType(java.lang.Class<?> type)
type
- the type of this Optionpublic java.lang.String getLongOpt()
public void setLongOpt(java.lang.String longOpt)
longOpt
- the long name of this Optionpublic void setOptionalArg(boolean optionalArg)
optionalArg
- specifies whether the Option can have
an optional argument.public boolean hasOptionalArg()
public boolean hasLongOpt()
public boolean hasArg()
public java.lang.String getDescription()
public void setDescription(java.lang.String description)
description
- The description of this optionpublic boolean isRequired()
public void setRequired(boolean required)
required
- specifies whether this Option is mandatorypublic void setArgName(java.lang.String argName)
argName
- the display name for the argument value.public java.lang.String getArgName()
public boolean hasArgName()
public boolean hasArgs()
public void setArgs(int num)
num
- the number of argument valuespublic void setValueSeparator(char sep)
sep
- The value separator.public char getValueSeparator()
public boolean hasValueSeparator()
public int getArgs()
A value equal to the constant UNINITIALIZED
(= -1) indicates
the number of arguments has not been specified.
A value equal to the constant UNLIMITED_VALUES
(= -2) indicates
that this options takes an unlimited amount of values.
UNINITIALIZED
,
UNLIMITED_VALUES
void addValueForProcessing(java.lang.String value)
value
- is a/the value of this Optionprivate void processValue(java.lang.String value)
value
- The String to be processed.private void add(java.lang.String value)
value
- The value to be added to this Optionpublic java.lang.String getValue()
null
if there is no value.null
if there is no value.public java.lang.String getValue(int index) throws java.lang.IndexOutOfBoundsException
null
if there is no value.index
- The index of the value to be returned.null
if there is no value.java.lang.IndexOutOfBoundsException
- if index is less than 1
or greater than the number of the values for this Option.public java.lang.String getValue(java.lang.String defaultValue)
defaultValue
if there is no value.defaultValue
- The value to be returned if there
is no value.defaultValue
if there are no values.public java.lang.String[] getValues()
public java.util.List<java.lang.String> getValuesList()
public java.lang.String toString()
toString
in class java.lang.Object
private boolean hasNoValues()
public boolean equals(java.lang.Object o)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public java.lang.Object clone()
clone
in class java.lang.Object
java.lang.RuntimeException
- if a CloneNotSupportedException
has been thrown
by super.clone()
void clearValues()
@Deprecated public boolean addValue(java.lang.String value)
value
- the value to addUnsupportedOperationException
java.lang.UnsupportedOperationException
- alwaysboolean acceptsArg()
boolean requiresArg()
public static Option.Builder builder()
Option.Builder
to create an Option
using descriptive
methods.Option.Builder
instancepublic static Option.Builder builder(java.lang.String opt)
Option.Builder
to create an Option
using descriptive
methods.opt
- short representation of the optionOption.Builder
instancejava.lang.IllegalArgumentException
- if there are any non valid Option characters in opt