@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, addLongIdentifier, addShortIdentifier, addShortIdentifier, appendBasicToStringInfo, getArgumentGroupName, getDescription, getIdentifierString, getLongIdentifier, getLongIdentifiers, getLongIdentifiers, getMaxOccurrences, getNumOccurrences, getShortIdentifier, getShortIdentifiers, getShortIdentifiers, getValuePlaceholder, hasLongIdentifier, hasShortIdentifier, isHidden, isPresent, isRequired, isSensitive, isUsageArgument, setArgumentGroupName, setHidden, setMaxOccurrences, setSensitive, setUsageArgument, takesValue, toStringpublic DurationArgument(@Nullable java.lang.Character shortIdentifier, @Nullable java.lang.String longIdentifier, @NotNull 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(@Nullable java.lang.Character shortIdentifier, @Nullable java.lang.String longIdentifier, boolean isRequired, @Nullable java.lang.String valuePlaceholder, @NotNull 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(@Nullable java.lang.Character shortIdentifier, @Nullable java.lang.String longIdentifier, boolean isRequired, @Nullable java.lang.String valuePlaceholder, @NotNull java.lang.String description, @Nullable java.lang.Long defaultValue, @Nullable java.util.concurrent.TimeUnit defaultValueUnit, @Nullable java.lang.Long lowerBound, @Nullable java.util.concurrent.TimeUnit lowerBoundUnit, @Nullable java.lang.Long upperBound, @Nullable 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(@NotNull java.util.concurrent.TimeUnit unit)
unit - The time unit in which the lower bound value may be
expressed.public long getUpperBound(@NotNull java.util.concurrent.TimeUnit unit)
unit - The time unit in which the upper bound value may be
expressed.@NotNull public java.util.List<java.lang.String> getValueStringRepresentations(boolean useDefault)
getValueStringRepresentations in class ArgumentuseDefault - Indicates whether to use any configured default value
if the argument doesn't have a user-specified value.protected boolean hasDefaultValue()
hasDefaultValue in class Argumenttrue if this argument has one or more default values, or
false if not.@Nullable public java.lang.Long getDefaultValue(@NotNull java.util.concurrent.TimeUnit unit)
unit - The time unit in which the default value should be expressed.null if none is defined.@Nullable public java.lang.Long getValue(@NotNull 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(@NotNull ArgumentValueValidator validator)
validator - The argument value validator to be invoked. It must not
be null.protected void addValue(@NotNull java.lang.String valueString) throws ArgumentException
addValue in class ArgumentvalueString - 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(@NotNull java.lang.String durationString, @NotNull 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.@NotNull public java.lang.String getDataTypeName()
getDataTypeName in class Argument@NotNull public java.lang.String getValueConstraints()
getValueConstraints in class Argumentnull
if there are none.protected void reset()
super.reset() to ensure that all necessary reset processing is
performed.@NotNull public DurationArgument getCleanCopy()
getCleanCopy in class Argument@NotNull public static java.lang.String nanosToDuration(long nanos)
nanos - The number of nanoseconds to convert to a duration string.protected void addToCommandLine(@NotNull java.util.List<java.lang.String> argStrings)
addToCommandLine in class ArgumentargStrings - The list to update with the string representation of
the command-line arguments.