@Mutable @ThreadSafety(level=NOT_THREADSAFE) public final class DurationArgument extends Argument
Constructor and Description |
---|
DurationArgument(java.lang.Character shortIdentifier,
java.lang.String longIdentifier,
boolean isRequired,
java.lang.String valuePlaceholder,
java.lang.String description)
Creates a new duration argument with no default value and no bounds on the
set of allowed values.
|
DurationArgument(java.lang.Character shortIdentifier,
java.lang.String longIdentifier,
boolean isRequired,
java.lang.String valuePlaceholder,
java.lang.String description,
java.lang.Long defaultValue,
java.util.concurrent.TimeUnit defaultValueUnit,
java.lang.Long lowerBound,
java.util.concurrent.TimeUnit lowerBoundUnit,
java.lang.Long upperBound,
java.util.concurrent.TimeUnit upperBoundUnit)
Creates a new duration argument with the provided information.
|
DurationArgument(java.lang.Character shortIdentifier,
java.lang.String longIdentifier,
java.lang.String description)
Creates a new duration argument that will not be required, will use a
default placeholder, and will have no default value and no bounds on the
set of allowed values.
|
Modifier and Type | Method and Description |
---|---|
protected void |
addToCommandLine(java.util.List<java.lang.String> argStrings)
Updates the provided list to add any strings that should be included on the
command line in order to represent this argument's current state.
|
protected void |
addValue(java.lang.String valueString)
Adds the provided value to the set of values for this argument.
|
void |
addValueValidator(ArgumentValueValidator validator)
Updates this argument to ensure that the provided validator will be invoked
for any values provided to this argument.
|
DurationArgument |
getCleanCopy()
Creates a copy of this argument that is "clean" and appears as if it has
not been used in the course of parsing an argument set.
|
java.lang.String |
getDataTypeName()
Retrieves a concise name of the data type with which this argument is
associated.
|
java.lang.Long |
getDefaultValue(java.util.concurrent.TimeUnit unit)
Retrieves the default value for this argument using the specified time
unit, if defined.
|
long |
getLowerBound(java.util.concurrent.TimeUnit unit)
Retrieves the lower bound for this argument using the specified time unit.
|
long |
getUpperBound(java.util.concurrent.TimeUnit unit)
Retrieves the upper bound for this argument using the specified time unit.
|
java.lang.Long |
getValue(java.util.concurrent.TimeUnit unit)
Retrieves the value for this argument using the specified time unit, if one
was provided.
|
java.lang.String |
getValueConstraints()
Retrieves a human-readable string with information about any constraints
that may be imposed for values of this argument.
|
java.util.List<java.lang.String> |
getValueStringRepresentations(boolean useDefault)
Retrieves a list containing the string representations of the values for
this argument, if any.
|
protected boolean |
hasDefaultValue()
Indicates whether this argument has one or more default values that will be
used if it is not provided on the command line.
|
static java.lang.String |
nanosToDuration(long nanos)
Converts the specified number of nanoseconds into a duration string using
the largest possible whole unit (e.g., if the value represents a whole
number of seconds, then the returned string will be expressed in seconds).
|
static long |
parseDuration(java.lang.String durationString,
java.util.concurrent.TimeUnit timeUnit)
Parses the provided string representation of a duration to a corresponding
numeric representation.
|
protected void |
reset()
Resets this argument so that it appears in the same form as before it was
used to parse arguments.
|
void |
toString(java.lang.StringBuilder buffer)
Appends a string representation of this argument to the provided buffer.
|
addLongIdentifier, addShortIdentifier, appendBasicToStringInfo, getArgumentGroupName, getDescription, getIdentifierString, getLongIdentifier, getLongIdentifiers, getMaxOccurrences, getNumOccurrences, getShortIdentifier, getShortIdentifiers, getValuePlaceholder, hasLongIdentifier, hasShortIdentifier, isHidden, isPresent, isRequired, isSensitive, isUsageArgument, setArgumentGroupName, setHidden, setMaxOccurrences, setSensitive, setUsageArgument, takesValue, toString
public DurationArgument(java.lang.Character shortIdentifier, java.lang.String longIdentifier, java.lang.String description) throws ArgumentException
shortIdentifier
- The short identifier for this argument. It may
not be null
if the long identifier is
null
.longIdentifier
- The long identifier for this argument. It may
not be null
if the short identifier is
null
.description
- A human-readable description for this argument.
It must not be null
.ArgumentException
- If there is a problem with the definition of
this argument.public DurationArgument(java.lang.Character shortIdentifier, java.lang.String longIdentifier, boolean isRequired, java.lang.String valuePlaceholder, java.lang.String description) throws ArgumentException
shortIdentifier
- The short identifier for this argument. It may
not be null
if the long identifier is
null
.longIdentifier
- The long identifier for this argument. It may
not be null
if the short identifier is
null
.isRequired
- Indicates whether this argument is required to
be provided.valuePlaceholder
- A placeholder to display in usage information to
indicate that a value must be provided. It may
be null
if a default placeholder should
be used.description
- A human-readable description for this argument.
It must not be null
.ArgumentException
- If there is a problem with the definition of
this argument.public DurationArgument(java.lang.Character shortIdentifier, java.lang.String longIdentifier, boolean isRequired, java.lang.String valuePlaceholder, java.lang.String description, java.lang.Long defaultValue, java.util.concurrent.TimeUnit defaultValueUnit, java.lang.Long lowerBound, java.util.concurrent.TimeUnit lowerBoundUnit, java.lang.Long upperBound, java.util.concurrent.TimeUnit upperBoundUnit) throws ArgumentException
shortIdentifier
- The short identifier for this argument. It may
not be null
if the long identifier is
null
.longIdentifier
- The long identifier for this argument. It may
not be null
if the short identifier is
null
.isRequired
- Indicates whether this argument is required to
be provided.valuePlaceholder
- A placeholder to display in usage information to
indicate that a value must be provided. It may
be null
if a default placeholder should
be used.description
- A human-readable description for this argument.
It must not be null
.defaultValue
- The default value that will be used for this
argument if none is provided. It may be
null
if there should not be a default
value.defaultValueUnit
- The time unit for the default value. It may be
null
only if the default value is also
null
.lowerBound
- The value for the minimum duration that may be
represented using this argument, in conjunction
with the lowerBoundUnit
parameter to
specify the unit for this value. If this is
null
, then a lower bound of 0 nanoseconds
will be used.lowerBoundUnit
- The time unit for the lower bound value. It may
be null
only if the lower bound is also
null
.upperBound
- The value for the maximum duration that may be
represented using this argument, in conjunction
with the upperBoundUnit
parameter to
specify the unit for this value. If this is
null
, then an upper bound of
Long.MAX_VALUE
nanoseconds will be used.upperBoundUnit
- The time unit for the upper bound value. It may
be null
only if the upper bound is also
null
.ArgumentException
- If there is a problem with the definition of
this argument.public long getLowerBound(java.util.concurrent.TimeUnit unit)
unit
- The time unit in which the lower bound value may be
expressed.public long getUpperBound(java.util.concurrent.TimeUnit unit)
unit
- The time unit in which the upper bound value may be
expressed.public java.util.List<java.lang.String> getValueStringRepresentations(boolean useDefault)
getValueStringRepresentations
in class Argument
useDefault
- Indicates whether to use any configured default value
if the argument doesn't have a user-specified value.protected boolean hasDefaultValue()
hasDefaultValue
in class Argument
true
if this argument has one or more default values, or
false
if not.public java.lang.Long getDefaultValue(java.util.concurrent.TimeUnit unit)
unit
- The time unit in which the default value should be expressed.null
if none is defined.public java.lang.Long getValue(java.util.concurrent.TimeUnit unit)
unit
- The time unit in which to express the value for this
argument.null
will be returned.public void addValueValidator(ArgumentValueValidator validator)
validator
- The argument value validator to be invoked. It must not
be null
.protected void addValue(java.lang.String valueString) throws ArgumentException
addValue
in class Argument
valueString
- The string representation of the value.ArgumentException
- If the provided value is not acceptable, if
this argument does not accept values, or if
this argument already has the maximum allowed
number of values.public static long parseDuration(java.lang.String durationString, java.util.concurrent.TimeUnit timeUnit) throws ArgumentException
durationString
- The string representation of the duration to be
parsed.timeUnit
- The time unit to use for the return value.ArgumentException
- If the provided string cannot be parsed as a
valid duration.public java.lang.String getDataTypeName()
getDataTypeName
in class Argument
public java.lang.String getValueConstraints()
getValueConstraints
in class Argument
null
if there are none.protected void reset()
super.reset()
to ensure that all necessary reset processing is
performed.public DurationArgument getCleanCopy()
getCleanCopy
in class Argument
public static java.lang.String nanosToDuration(long nanos)
nanos
- The number of nanoseconds to convert to a duration string.protected void addToCommandLine(java.util.List<java.lang.String> argStrings)
addToCommandLine
in class Argument
argStrings
- The list to update with the string representation of
the command-line arguments.