com.unboundid.util.args
Class StringArgument

java.lang.Object
  extended by com.unboundid.util.args.Argument
      extended by com.unboundid.util.args.StringArgument
All Implemented Interfaces:
java.io.Serializable

@Mutable
@ThreadSafety(level=NOT_THREADSAFE)
public final class StringArgument
extends Argument

This class defines an argument that is intended to hold one or more string values. String arguments must take values. By default, any value will be allowed, but it is possible to restrict the set of values so that only values from a specified set (ignoring differences in capitalization) will be allowed.

See Also:
Serialized Form

Constructor Summary
StringArgument(java.lang.Character shortIdentifier, java.lang.String longIdentifier, boolean isRequired, int maxOccurrences, java.lang.String valuePlaceholder, java.lang.String description)
          Creates a new string argument with the provided information.
StringArgument(java.lang.Character shortIdentifier, java.lang.String longIdentifier, boolean isRequired, int maxOccurrences, java.lang.String valuePlaceholder, java.lang.String description, java.util.List<java.lang.String> defaultValues)
          Creates a new string argument with the provided information.
StringArgument(java.lang.Character shortIdentifier, java.lang.String longIdentifier, boolean isRequired, int maxOccurrences, java.lang.String valuePlaceholder, java.lang.String description, java.util.Set<java.lang.String> allowedValues)
          Creates a new string argument with the provided information.
StringArgument(java.lang.Character shortIdentifier, java.lang.String longIdentifier, boolean isRequired, int maxOccurrences, java.lang.String valuePlaceholder, java.lang.String description, java.util.Set<java.lang.String> allowedValues, java.util.List<java.lang.String> defaultValues)
          Creates a new string argument with the provided information.
StringArgument(java.lang.Character shortIdentifier, java.lang.String longIdentifier, boolean isRequired, int maxOccurrences, java.lang.String valuePlaceholder, java.lang.String description, java.util.Set<java.lang.String> allowedValues, java.lang.String defaultValue)
          Creates a new string argument with the provided information.
StringArgument(java.lang.Character shortIdentifier, java.lang.String longIdentifier, boolean isRequired, int maxOccurrences, java.lang.String valuePlaceholder, java.lang.String description, java.lang.String defaultValue)
          Creates a new string argument with the provided information.
 
Method Summary
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.
 java.util.Set<java.lang.String> getAllowedValues()
          Retrieves the set of allowed values for this argument, if applicable.
 StringArgument 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.lang.String> getDefaultValues()
          Retrieves the list of default values for this argument, which will be used if no values were provided.
 java.lang.String 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.regex.Pattern getValueRegex()
          Retrieves the regular expression that values of this argument will be required to match, if any.
 java.lang.String getValueRegexExplanation()
          Retrieves a human-readable explanation of the regular expression pattern that may be required to match any provided values, if any.
 java.util.List<java.lang.String> getValues()
          Retrieves the set of values for this argument, or the default values if none were provided.
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.
 void setValueRegex(java.util.regex.Pattern valueRegex, java.lang.String explanation)
          Specifies the regular expression that values of this argument will be required to match, if any.
 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, addShortIdentifier, appendBasicToStringInfo, getDescription, getIdentifierString, getLongIdentifier, getLongIdentifiers, getMaxOccurrences, getNumOccurrences, getShortIdentifier, getShortIdentifiers, getValuePlaceholder, hasLongIdentifier, hasShortIdentifier, isHidden, isPresent, isRequired, isUsageArgument, setHidden, setMaxOccurrences, setUsageArgument, takesValue, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

StringArgument

public StringArgument(java.lang.Character shortIdentifier,
                      java.lang.String longIdentifier,
                      boolean isRequired,
                      int maxOccurrences,
                      java.lang.String valuePlaceholder,
                      java.lang.String description)
               throws ArgumentException
Creates a new string argument with the provided information. There will not be any default values, nor will there be any restriction on values that may be assigned to this argument.

Parameters:
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.
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 must not be null.
description - A human-readable description for this argument. It must not be null.
Throws:
ArgumentException - If there is a problem with the definition of this argument.

StringArgument

public StringArgument(java.lang.Character shortIdentifier,
                      java.lang.String longIdentifier,
                      boolean isRequired,
                      int maxOccurrences,
                      java.lang.String valuePlaceholder,
                      java.lang.String description,
                      java.util.Set<java.lang.String> allowedValues)
               throws ArgumentException
Creates a new string argument with the provided information. There will not be any default values.

Parameters:
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.
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 must not be null.
description - A human-readable description for this argument. It must not be null.
allowedValues - The set of allowed values for this argument, or null if it should not be restricted.
Throws:
ArgumentException - If there is a problem with the definition of this argument.

StringArgument

public StringArgument(java.lang.Character shortIdentifier,
                      java.lang.String longIdentifier,
                      boolean isRequired,
                      int maxOccurrences,
                      java.lang.String valuePlaceholder,
                      java.lang.String description,
                      java.lang.String defaultValue)
               throws ArgumentException
Creates a new string argument with the provided information. There will not be any restriction on values that may be assigned to this argument.

Parameters:
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.
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 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 no values are provided. It may be null if there should not be a default value.
Throws:
ArgumentException - If there is a problem with the definition of this argument.

StringArgument

public StringArgument(java.lang.Character shortIdentifier,
                      java.lang.String longIdentifier,
                      boolean isRequired,
                      int maxOccurrences,
                      java.lang.String valuePlaceholder,
                      java.lang.String description,
                      java.util.List<java.lang.String> defaultValues)
               throws ArgumentException
Creates a new string argument with the provided information. There will not be any restriction on values that may be assigned to this argument.

Parameters:
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.
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 must not be null.
description - A human-readable description for this argument. It must not be null.
defaultValues - The set of default values that will be used for this argument if no values are provided.
Throws:
ArgumentException - If there is a problem with the definition of this argument.

StringArgument

public StringArgument(java.lang.Character shortIdentifier,
                      java.lang.String longIdentifier,
                      boolean isRequired,
                      int maxOccurrences,
                      java.lang.String valuePlaceholder,
                      java.lang.String description,
                      java.util.Set<java.lang.String> allowedValues,
                      java.lang.String defaultValue)
               throws ArgumentException
Creates a new string argument with the provided information.

Parameters:
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.
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 must not be null.
description - A human-readable description for this argument. It must not be null.
allowedValues - The set of allowed values for this argument, or null if it should not be restricted.
defaultValue - The default value that will be used for this argument if no values are provided. It may be null if there should not be a default value.
Throws:
ArgumentException - If there is a problem with the definition of this argument.

StringArgument

public StringArgument(java.lang.Character shortIdentifier,
                      java.lang.String longIdentifier,
                      boolean isRequired,
                      int maxOccurrences,
                      java.lang.String valuePlaceholder,
                      java.lang.String description,
                      java.util.Set<java.lang.String> allowedValues,
                      java.util.List<java.lang.String> defaultValues)
               throws ArgumentException
Creates a new string argument with the provided information.

Parameters:
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.
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 must not be null.
description - A human-readable description for this argument. It must not be null.
allowedValues - The set of allowed values for this argument, or null if it should not be restricted.
defaultValues - The set of default values that will be used for this argument if no values are provided.
Throws:
ArgumentException - If there is a problem with the definition of this argument.
Method Detail

getAllowedValues

public java.util.Set<java.lang.String> getAllowedValues()
Retrieves the set of allowed values for this argument, if applicable.

Returns:
The set of allowed values for this argument, or null if there is no restriction on the allowed values.

getDefaultValues

public java.util.List<java.lang.String> 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.

getValueRegex

public java.util.regex.Pattern getValueRegex()
Retrieves the regular expression that values of this argument will be required to match, if any.

Returns:
The regular expression that values of this argument will be required to match, or null if none is defined.

getValueRegexExplanation

public java.lang.String getValueRegexExplanation()
Retrieves a human-readable explanation of the regular expression pattern that may be required to match any provided values, if any.

Returns:
A human-readable explanation of the regular expression pattern, or null if none is available.

setValueRegex

public void setValueRegex(java.util.regex.Pattern valueRegex,
                          java.lang.String explanation)
Specifies the regular expression that values of this argument will be required to match, if any.

Parameters:
valueRegex - The regular expression that values of this argument will be required to match. It may be null if no pattern matching should be required.
explanation - A human-readable explanation for the pattern which may be used to clarify the kinds of values that are acceptable. It may be null if no pattern matching should be required, or if the regular expression pattern should be sufficiently clear for the target audience.

addValueValidator

public void addValueValidator(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 be null.

addValue

protected void addValue(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 class Argument
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.

getValue

public java.lang.String getValue()
Retrieves the value for this argument, or the default value if none was provided. If this argument has 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 it does not have any values or default values.

getValues

public java.util.List<java.lang.String> getValues()
Retrieves the set of values for this argument, or the default values if none were provided.

Returns:
The set of values for this argument, or the default values if none were provided.

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 class Argument
Returns:
true if this argument has one or more default values, or false if not.

getDataTypeName

public java.lang.String getDataTypeName()
Retrieves a concise name of the data type with which this argument is associated.

Specified by:
getDataTypeName in class Argument
Returns:
A concise name of the data type with which this argument is associated.

getValueConstraints

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 class Argument
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.

getCleanCopy

public StringArgument 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 The new parser will have all of the same arguments and constraints as this parser.

Specified by:
getCleanCopy in class Argument
Returns:
The "clean" copy of this argument.

toString

public void toString(java.lang.StringBuilder buffer)
Appends a string representation of this argument to the provided buffer.

Specified by:
toString in class Argument
Parameters:
buffer - The buffer to which the information should be appended.