Package com.unboundid.util.args
Class TimestampArgument
- java.lang.Object
-
- com.unboundid.util.args.Argument
-
- com.unboundid.util.args.TimestampArgument
-
- All Implemented Interfaces:
java.io.Serializable
@Mutable @ThreadSafety(level=NOT_THREADSAFE) public final class TimestampArgument extends Argument
This class defines an argument that is intended to hold one or more timestamp values. Values may be provided in any of the following formats:- Any valid generalized time format.
- Any valid ISO 8601 timestamp in the format described in RFC 3339.
- A local time zone timestamp in the format YYYYMMDDhhmmss.uuu
- A local time zone timestamp in the format YYYYMMDDhhmmss
- A local time zone timestamp in the format YYYYMMDDhhmm
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description TimestampArgument(java.lang.Character shortIdentifier, java.lang.String longIdentifier, boolean isRequired, int maxOccurrences, java.lang.String valuePlaceholder, java.lang.String description)
Creates a new timestamp argument with the provided information.TimestampArgument(java.lang.Character shortIdentifier, java.lang.String longIdentifier, boolean isRequired, int maxOccurrences, java.lang.String valuePlaceholder, java.lang.String description, java.util.Date defaultValue)
Creates a new timestamp argument with the provided information.TimestampArgument(java.lang.Character shortIdentifier, java.lang.String longIdentifier, boolean isRequired, int maxOccurrences, java.lang.String valuePlaceholder, java.lang.String description, java.util.List<java.util.Date> defaultValues)
Creates a new timestamp argument with the provided information.TimestampArgument(java.lang.Character shortIdentifier, java.lang.String longIdentifier, java.lang.String description)
Creates a new timestamp argument with the provided information.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method 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.TimestampArgument
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.util.List<java.util.Date>
getDefaultValues()
Retrieves the list of default values for this argument, which will be used if no values were provided.java.lang.String
getStringValue()
Retrieves a string representation of the value for this argument, or a string representation of the default value if none was provided.java.util.Date
getValue()
Retrieves the value for this argument, or the default value if none 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.util.Date>
getValues()
Retrieves the set of values for 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.util.Date
parseTimestamp(java.lang.String s)
Parses the provided string as a timestamp using one of the supported formats.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.-
Methods inherited from class com.unboundid.util.args.Argument
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, toString
-
-
-
-
Constructor Detail
-
TimestampArgument
public TimestampArgument(@Nullable java.lang.Character shortIdentifier, @Nullable java.lang.String longIdentifier, @NotNull java.lang.String description) throws ArgumentException
Creates a new timestamp argument with the provided information. It will not be required, will permit at most one occurrence, will use a default placeholder, and will not have a default value.- Parameters:
shortIdentifier
- The short identifier for this argument. It may not benull
if the long identifier isnull
.longIdentifier
- The long identifier for this argument. It may not benull
if the short identifier isnull
.description
- A human-readable description for this argument. It must not benull
.- Throws:
ArgumentException
- If there is a problem with the definition of this argument.
-
TimestampArgument
public TimestampArgument(@Nullable java.lang.Character shortIdentifier, @Nullable java.lang.String longIdentifier, boolean isRequired, int maxOccurrences, @Nullable java.lang.String valuePlaceholder, @NotNull java.lang.String description) throws ArgumentException
Creates a new timestamp argument with the provided information. It will not have a default value.- Parameters:
shortIdentifier
- The short identifier for this argument. It may not benull
if the long identifier isnull
.longIdentifier
- The long identifier for this argument. It may not benull
if the short identifier isnull
.isRequired
- Indicates whether this argument is required to be provided.maxOccurrences
- The maximum number of times this argument may be provided on the command line. A value less than or equal to zero indicates that it may be present any number of times.valuePlaceholder
- A placeholder to display in usage information to indicate that a value must be provided. It may benull
if a default placeholder should be used.description
- A human-readable description for this argument. It must not benull
.- Throws:
ArgumentException
- If there is a problem with the definition of this argument.
-
TimestampArgument
public TimestampArgument(@Nullable java.lang.Character shortIdentifier, @Nullable java.lang.String longIdentifier, boolean isRequired, int maxOccurrences, @Nullable java.lang.String valuePlaceholder, @NotNull java.lang.String description, @Nullable java.util.Date defaultValue) throws ArgumentException
Creates a new timestamp argument with the provided information.- Parameters:
shortIdentifier
- The short identifier for this argument. It may not benull
if the long identifier isnull
.longIdentifier
- The long identifier for this argument. It may not benull
if the short identifier isnull
.isRequired
- Indicates whether this argument is required to be provided.maxOccurrences
- The maximum number of times this argument may be provided on the command line. A value less than or equal to zero indicates that it may be present any number of times.valuePlaceholder
- A placeholder to display in usage information to indicate that a value must be provided. It may benull
if a default placeholder should be used.description
- A human-readable description for this argument. It must not benull
.defaultValue
- The default value to use for this argument if no values were provided.- Throws:
ArgumentException
- If there is a problem with the definition of this argument.
-
TimestampArgument
public TimestampArgument(@Nullable java.lang.Character shortIdentifier, @Nullable java.lang.String longIdentifier, boolean isRequired, int maxOccurrences, @Nullable java.lang.String valuePlaceholder, @NotNull java.lang.String description, @Nullable java.util.List<java.util.Date> defaultValues) throws ArgumentException
Creates a new timestamp argument with the provided information.- Parameters:
shortIdentifier
- The short identifier for this argument. It may not benull
if the long identifier isnull
.longIdentifier
- The long identifier for this argument. It may not benull
if the short identifier isnull
.isRequired
- Indicates whether this argument is required to be provided.maxOccurrences
- The maximum number of times this argument may be provided on the command line. A value less than or equal to zero indicates that it may be present any number of times.valuePlaceholder
- A placeholder to display in usage information to indicate that a value must be provided. It may benull
if a default placeholder should be used.description
- A human-readable description for this argument. It must not benull
.defaultValues
- The set of default values to use for this argument if no values were provided.- Throws:
ArgumentException
- If there is a problem with the definition of this argument.
-
-
Method Detail
-
getDefaultValues
@Nullable public java.util.List<java.util.Date> getDefaultValues()
Retrieves the list of default values for this argument, which will be used if no values were provided.- Returns:
- The list of default values for this argument, or
null
if there are no default values.
-
addValueValidator
public void addValueValidator(@NotNull ArgumentValueValidator validator)
Updates this argument to ensure that the provided validator will be invoked for any values provided to this argument. This validator will be invoked after all other validation has been performed for this argument.- Parameters:
validator
- The argument value validator to be invoked. It must not benull
.
-
addValue
protected void addValue(@NotNull java.lang.String valueString) throws ArgumentException
Adds the provided value to the set of values for this argument. This method should only be called by the argument parser.- Specified by:
addValue
in classArgument
- Parameters:
valueString
- The string representation of the value.- Throws:
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.
-
parseTimestamp
@NotNull public static java.util.Date parseTimestamp(@NotNull java.lang.String s) throws java.text.ParseException
Parses the provided string as a timestamp using one of the supported formats.- Parameters:
s
- The string to parse as a timestamp. It must not benull
.- Returns:
- The
Date
object parsed from the provided timestamp. - Throws:
java.text.ParseException
- If the provided string cannot be parsed as a timestamp.
-
getValue
@Nullable public java.util.Date getValue()
Retrieves the value for this argument, or the default value if none was provided. If there are multiple values, then the first will be returned.- Returns:
- The value for this argument, or the default value if none was
provided, or
null
if there is no value and no default value.
-
getValues
@NotNull public java.util.List<java.util.Date> getValues()
Retrieves the set of values for this argument.- Returns:
- The set of values for this argument.
-
getStringValue
@Nullable public java.lang.String getStringValue()
Retrieves a string representation of the value for this argument, or a string representation of the default value if none was provided. If there are multiple values, then the first will be returned.- Returns:
- The string representation of the value for this argument, or the
string representation of the default value if none was provided,
or
null
if there is no value and no default value.
-
getValueStringRepresentations
@NotNull public java.util.List<java.lang.String> getValueStringRepresentations(boolean useDefault)
Retrieves a list containing the string representations of the values for this argument, if any. The list returned does not necessarily need to include values that will be acceptable to the argument, but it should imply what the values are (e.g., in the case of a boolean argument that doesn't take a value, it may be the string "true" or "false" even if those values are not acceptable to the argument itself).- Specified by:
getValueStringRepresentations
in classArgument
- Parameters:
useDefault
- Indicates whether to use any configured default value if the argument doesn't have a user-specified value.- Returns:
- A string representation of the value for this argument, or an empty list if the argument does not have a value.
-
hasDefaultValue
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.- Specified by:
hasDefaultValue
in classArgument
- Returns:
true
if this argument has one or more default values, orfalse
if not.
-
getDataTypeName
@NotNull public java.lang.String getDataTypeName()
Retrieves a concise name of the data type with which this argument is associated.- Specified by:
getDataTypeName
in classArgument
- Returns:
- A concise name of the data type with which this argument is associated.
-
getValueConstraints
@NotNull public java.lang.String getValueConstraints()
Retrieves a human-readable string with information about any constraints that may be imposed for values of this argument.- Overrides:
getValueConstraints
in classArgument
- Returns:
- A human-readable string with information about any constraints
that may be imposed for values of this argument, or
null
if there are none.
-
reset
protected void reset()
Resets this argument so that it appears in the same form as before it was used to parse arguments. Subclasses that override this method must callsuper.reset()
to ensure that all necessary reset processing is performed.
-
getCleanCopy
@NotNull public TimestampArgument 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. The new argument will have all of the same identifiers and constraints as this parser.- Specified by:
getCleanCopy
in classArgument
- Returns:
- The "clean" copy of this argument.
-
addToCommandLine
protected void addToCommandLine(@NotNull 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.- Specified by:
addToCommandLine
in classArgument
- Parameters:
argStrings
- The list to update with the string representation of the command-line arguments.
-
-