@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.
|
Modifier and Type | Method and Description |
---|---|
protected void |
addValue(java.lang.String valueString)
Adds the provided value to the set of values for 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.
|
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 long |
parseDuration(java.lang.String durationString,
java.util.concurrent.TimeUnit timeUnit)
Parses the provided string representation of a duration to a corresponding
numeric representation.
|
void |
toString(java.lang.StringBuilder buffer)
Appends a string representation of this argument to the provided buffer.
|
addLongIdentifier, addShortIdentifier, appendBasicToStringInfo, getDescription, getIdentifierString, getLongIdentifier, getLongIdentifiers, getMaxOccurrences, getNumOccurrences, getShortIdentifier, getShortIdentifiers, getValuePlaceholder, hasLongIdentifier, hasShortIdentifier, isHidden, isPresent, isRequired, isUsageArgument, setHidden, setMaxOccurrences, setUsageArgument, takesValue, toString
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 must
not be 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, 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 must
not be null
.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.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.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.public DurationArgument getCleanCopy()
getCleanCopy
in class Argument