Class Option
- All Implemented Interfaces:
Serializable,Cloneable
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, its required flag cannot be
changed.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classA nested builder class to createOptioninstances using descriptive methods. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intSpecifies the number of argument values has not been specifiedstatic final intSpecifies the number of argument values is infinite -
Constructor Summary
ConstructorsConstructorDescriptionCreates an Option using the specified parameters.Creates an Option using the specified parameters.Creates an Option using the specified parameters. -
Method Summary
Modifier and TypeMethodDescriptionbooleanDeprecated.Unused.static @NotNull Option.Builderbuilder()Returns aOption.Builderto create anOptionusing descriptive methods.static @NotNull Option.BuilderReturns aOption.Builderto create anOptionusing descriptive methods.@NotNull Objectclone()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.booleanGets the display name for the argument value.intgetArgs()Gets the number of argument values this Option can take.Gets the self-documenting description of this OptionintgetId()Gets the id of this Option.Gets the long name of this Option.getOpt()Gets the name of this Option.getType()Gets the type of this Option.@Nullable StringgetValue()Gets the specified value of this Option ornullif there is no value.@Nullable StringgetValue(int index) Gets the specified value of this Option ornullif there is no value.Gets the value/first value of this Option or thedefaultValueif there is no value.String @Nullable []Gets the values of this Option as a String array or null if there are no valuescharGets the value separator character.Gets the values of this Option as a List or null if there are no values.booleanhasArg()Query to see if this Option requires an argumentbooleanReturns whether the display name for the argument value has been set.booleanhasArgs()Query to see if this Option can take many values.inthashCode()booleanQuery to see if this Option has a long namebooleanbooleanReturn whether this Option has specified a value separator.booleanQuery to see if this Option is mandatoryvoidsetArgName(String argName) Sets the display name for the argument value.voidsetArgs(int num) Sets the number of argument values this Option can take.voidsetDescription(String description) Sets the self-documenting description of this OptionvoidsetLongOpt(String longOpt) Sets the long name of this Option.voidsetOptionalArg(boolean optionalArg) Sets whether this Option can have an optional argument.voidsetRequired(boolean required) Sets whether this Option is mandatory.voidSets the type of this Option.voidDeprecated.since 1.3, usesetType(Class)insteadvoidsetValueSeparator(char sep) Sets the value separator.@NotNull StringtoString()Dump state, suitable for debugging.
-
Field Details
-
UNINITIALIZED
public static final int UNINITIALIZEDSpecifies the number of argument values has not been specified- See Also:
-
UNLIMITED_VALUES
public static final int UNLIMITED_VALUESSpecifies the number of argument values is infinite- See Also:
-
-
Constructor Details
-
Option
Creates an Option using the specified parameters.- Parameters:
option- short representation of the optionhasArg- specifies whether the Option takes an argument or notdescription- describes the function of the option- Throws:
IllegalArgumentException- if there are any non valid Option characters inopt.
-
Option
public Option(String option, String longOption, boolean hasArg, String description) throws IllegalArgumentException Creates an Option using the specified parameters.- Parameters:
option- short representation of the optionlongOption- the long representation of the optionhasArg- specifies whether the Option takes an argument or notdescription- describes the function of the option- Throws:
IllegalArgumentException- if there are any non valid Option characters inopt.
-
Option
Creates an Option using the specified parameters. The option does not take an argument.- Parameters:
option- short representation of the optiondescription- describes the function of the option- Throws:
IllegalArgumentException- if there are any non valid Option characters inopt.
-
-
Method Details
-
builder
Returns aOption.Builderto create anOptionusing descriptive methods.- Returns:
- a new
Option.Builderinstance - Since:
- 1.3
-
builder
Returns aOption.Builderto create anOptionusing descriptive methods.- Parameters:
option- short representation of the option- Returns:
- a new
Option.Builderinstance - Throws:
IllegalArgumentException- if there are any non valid Option characters inopt- Since:
- 1.3
-
addValue
Deprecated.Unused.This method is not intended to be used. It was a piece of internal API that was made public in 1.0. It currently throws an UnsupportedOperationException.- Parameters:
value- the value to add- Returns:
- always throws an
UnsupportedOperationException - Throws:
UnsupportedOperationException- always
-
hasValueSeparator
public boolean hasValueSeparator()Return whether this Option has specified a value separator.- Returns:
- whether this Option has specified a value separator.
- Since:
- 1.1
-
getValueSeparator
public char getValueSeparator()Gets the value separator character.- Returns:
- the value separator character.
-
hasArg
public boolean hasArg()Query to see if this Option requires an argument- Returns:
- boolean flag indicating if an argument is required
-
hasArgs
public boolean hasArgs()Query to see if this Option can take many values.- Returns:
- boolean flag indicating if multiple values are allowed
-
hasOptionalArg
public boolean hasOptionalArg()- Returns:
- whether this Option can have an optional argument
-
setValueSeparator
public void setValueSeparator(char sep) Sets the value separator. For example if the argument value was a Java property, the value separator would be '='.- Parameters:
sep- The value separator.
-
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.After calling this method, it is very likely you will want to call clearValues().
- Overrides:
clonein classObject- Returns:
- a clone of this Option instance
- Throws:
RuntimeException- if aCloneNotSupportedExceptionhas been thrown bysuper.clone()
-
equals
-
hashCode
public int hashCode() -
toString
Dump state, suitable for debugging. -
getArgName
Gets the display name for the argument value.- Returns:
- the display name for the argument value.
-
setArgName
Sets the display name for the argument value.- Parameters:
argName- the display name for the argument value.
-
getArgs
public int getArgs()Gets the number of argument values this Option can take.A value equal to the constant
UNINITIALIZED(= -1) indicates the number of arguments has not been specified. A value equal to the constantUNLIMITED_VALUES(= -2) indicates that this options takes an unlimited amount of values.- Returns:
- num the number of argument values
- See Also:
-
setArgs
public void setArgs(int num) Sets the number of argument values this Option can take.- Parameters:
num- the number of argument values
-
getDescription
Gets the self-documenting description of this Option- Returns:
- The string description of this option
-
setDescription
Sets the self-documenting description of this Option- Parameters:
description- The description of this option- Since:
- 1.1
-
getId
public int getId()Gets the id of this Option. This is only set when the Option shortOpt is a single character. This is used for switch statements.- Returns:
- the id of this Option
-
getLongOpt
Gets the long name of this Option.- Returns:
- Long name of this option, or null, if there is no long name
-
setLongOpt
Sets the long name of this Option.- Parameters:
longOpt- the long name of this Option
-
getOpt
Gets the name of this Option.It is this String which can be used with
CommandLine.hasOption(String opt)andCommandLine.getOptionValue(String opt)to check for existence and argument.- Returns:
- The name of this option
-
getType
Gets the type of this Option.- Returns:
- The type of this option
-
setType
Sets the type of this Option.- Parameters:
type- the type of this Option- Since:
- 1.3
-
setType
Deprecated.since 1.3, usesetType(Class)insteadSets the type of this Option.Note: this method is kept for binary compatibility and the input type is supposed to be a
Classobject.- Parameters:
type- the type of this Option
-
getValue
Gets the specified value of this Option ornullif there is no value.- Parameters:
index- The index of the value to be returned.- Returns:
- the specified value of this Option or
nullif there is no value. - Throws:
IndexOutOfBoundsException- if index is less than 1 or greater than the number of the values for this Option.
-
getValue
Gets the value/first value of this Option or thedefaultValueif there is no value.- Parameters:
defaultValue- The value to be returned if there is no value.- Returns:
- the value/first value of this Option or the
defaultValueif there are no values.
-
getValue
Gets the specified value of this Option ornullif there is no value.- Returns:
- the value/first value of this Option or
nullif there is no value.
-
getValues
Gets the values of this Option as a String array or null if there are no values- Returns:
- the values of this Option as a String array or null if there are no values
-
getValuesList
Gets the values of this Option as a List or null if there are no values.- Returns:
- the values of this Option as a List or null if there are no values
-
hasArgName
public boolean hasArgName()Returns whether the display name for the argument value has been set.- Returns:
- if the display name for the argument value has been set.
-
hasLongOpt
public boolean hasLongOpt()Query to see if this Option has a long name- Returns:
- boolean flag indicating existence of a long name
-
isRequired
public boolean isRequired()Query to see if this Option is mandatory- Returns:
- boolean flag indicating whether this Option is mandatory
-
setRequired
public void setRequired(boolean required) Sets whether this Option is mandatory.- Parameters:
required- specifies whether this Option is mandatory
-
setOptionalArg
public void setOptionalArg(boolean optionalArg) Sets whether this Option can have an optional argument.- Parameters:
optionalArg- specifies whether the Option can have an optional argument.
-