From f2160f4bd1c8ac67e5a86a6710d431e8932877f9 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Fri, 28 May 2010 11:47:51 +0000
Subject: [PATCH] Synchronize SDK on java.net with internal repository.
---
sdk/src/com/sun/opends/sdk/tools/MultiChoiceArgument.java | 305 +++++++++++++++++++++++++-------------------------
1 files changed, 151 insertions(+), 154 deletions(-)
diff --git a/sdk/src/com/sun/opends/sdk/tools/MultiChoiceArgument.java b/sdk/src/com/sun/opends/sdk/tools/MultiChoiceArgument.java
index 2a573b3..61eb812 100644
--- a/sdk/src/com/sun/opends/sdk/tools/MultiChoiceArgument.java
+++ b/sdk/src/com/sun/opends/sdk/tools/MultiChoiceArgument.java
@@ -28,7 +28,7 @@
-import static com.sun.opends.sdk.messages.Messages.*;
+import static com.sun.opends.sdk.messages.Messages.ERR_MCARG_VALUE_NOT_ALLOWED;
import java.util.Collection;
@@ -37,20 +37,21 @@
-
/**
- * This class defines an argument type that will only accept one or more
- * of a specific set of string values.
+ * This class defines an argument type that will only accept one or more of a
+ * specific set of string values.
+ *
+ * @param <T>
+ * The type of values returned by this argument.
*/
final class MultiChoiceArgument<T> extends Argument
{
// Indicates whether argument values should be treated in a
- // case-sensitive
- // manner.
- private boolean caseSensitive;
+ // case-sensitive manner.
+ private final boolean caseSensitive;
// The set of values that will be allowed for use with this argument.
- private Collection<T> allowedValues;
+ private final Collection<T> allowedValues;
@@ -58,109 +59,56 @@
* Creates a new string argument with the provided information.
*
* @param name
- * The generic name that should be used to refer to this
- * argument.
+ * The generic name that should be used to refer to this argument.
* @param shortIdentifier
* The single-character identifier for this argument, or
* <CODE>null</CODE> if there is none.
* @param longIdentifier
- * The long identifier for this argument, or
- * <CODE>null</CODE> if there is none.
+ * The long identifier for this argument, or <CODE>null</CODE> if
+ * there is none.
* @param isRequired
- * Indicates whether this argument must be specified on the
- * command line.
- * @param needsValue
- * Indicates whether this argument requires a value.
- * @param valuePlaceholder
- * The placeholder for the argument value that will be
- * displayed in usage information, or <CODE>null</CODE> if
- * this argument does not require a value.
- * @param allowedValues
- * The set of values that are allowed for use for this
- * argument. If they are not to be treated in a
- * case-sensitive value then they should all be formatted in
- * lowercase.
- * @param caseSensitive
- * Indicates whether the set of allowed values should be
- * treated in a case-sensitive manner.
- * @param description
- * LocalizableMessage for the description of this argument.
- * @throws ArgumentException
- * If there is a problem with any of the parameters used to
- * create this argument.
- */
- public MultiChoiceArgument(String name, Character shortIdentifier,
- String longIdentifier, boolean isRequired, boolean needsValue,
- LocalizableMessage valuePlaceholder, Collection<T> allowedValues,
- boolean caseSensitive, LocalizableMessage description)
- throws ArgumentException
- {
- super(name, shortIdentifier, longIdentifier, isRequired, false,
- needsValue, valuePlaceholder, null, null, description);
-
- this.allowedValues = allowedValues;
- this.caseSensitive = caseSensitive;
- }
-
-
-
- /**
- * Creates a new string argument with the provided information.
- *
- * @param name
- * The generic name that should be used to refer to this
- * argument.
- * @param shortIdentifier
- * The single-character identifier for this argument, or
- * <CODE>null</CODE> if there is none.
- * @param longIdentifier
- * The long identifier for this argument, or
- * <CODE>null</CODE> if there is none.
- * @param isRequired
- * Indicates whether this argument must be specified on the
- * command line.
+ * Indicates whether this argument must be specified on the command
+ * line.
* @param isMultiValued
- * Indicates whether this argument may be specified more than
- * once to provide multiple values.
+ * Indicates whether this argument may be specified more than once to
+ * provide multiple values.
* @param needsValue
* Indicates whether this argument requires a value.
* @param valuePlaceholder
- * The placeholder for the argument value that will be
- * displayed in usage information, or <CODE>null</CODE> if
- * this argument does not require a value.
+ * The placeholder for the argument value that will be displayed in
+ * usage information, or <CODE>null</CODE> if this argument does not
+ * require a value.
* @param defaultValue
- * The default value that should be used for this argument if
- * none is provided in a properties file or on the command
- * line. This may be <CODE>null</CODE> if there is no generic
- * default.
+ * The default value that should be used for this argument if none is
+ * provided in a properties file or on the command line. This may be
+ * <CODE>null</CODE> if there is no generic default.
* @param propertyName
- * The name of the property in a property file that may be
- * used to override the default value but will be overridden
- * by a command-line argument.
+ * The name of the property in a property file that may be used to
+ * override the default value but will be overridden by a
+ * command-line argument.
* @param allowedValues
- * The set of values that are allowed for use for this
- * argument. If they are not to be treated in a
- * case-sensitive value then they should all be formatted in
- * lowercase.
+ * The set of values that are allowed for use for this argument. If
+ * they are not to be treated in a case-sensitive value then they
+ * should all be formatted in lowercase.
* @param caseSensitive
- * Indicates whether the set of allowed values should be
- * treated in a case-sensitive manner.
+ * Indicates whether the set of allowed values should be treated in a
+ * case-sensitive manner.
* @param description
* LocalizableMessage for the description of this argument.
* @throws ArgumentException
- * If there is a problem with any of the parameters used to
- * create this argument.
+ * If there is a problem with any of the parameters used to create
+ * this argument.
*/
- public MultiChoiceArgument(String name, Character shortIdentifier,
- String longIdentifier, boolean isRequired, boolean isMultiValued,
- boolean needsValue, LocalizableMessage valuePlaceholder,
- String defaultValue, String propertyName,
- Collection<T> allowedValues, boolean caseSensitive,
- LocalizableMessage description) throws ArgumentException
+ public MultiChoiceArgument(final String name,
+ final Character shortIdentifier, final String longIdentifier,
+ final boolean isRequired, final boolean isMultiValued,
+ final boolean needsValue, final LocalizableMessage valuePlaceholder,
+ final String defaultValue, final String propertyName,
+ final Collection<T> allowedValues, final boolean caseSensitive,
+ final LocalizableMessage description) throws ArgumentException
{
- super(name, shortIdentifier, longIdentifier, isRequired,
- isMultiValued, needsValue, valuePlaceholder, defaultValue,
- propertyName, description);
+ super(name, shortIdentifier, longIdentifier, isRequired, isMultiValued,
+ needsValue, valuePlaceholder, defaultValue, propertyName, description);
this.allowedValues = allowedValues;
this.caseSensitive = caseSensitive;
@@ -169,8 +117,57 @@
/**
- * Retrieves the set of allowed values for this argument. The contents
- * of this set must not be altered by the caller.
+ * Creates a new string argument with the provided information.
+ *
+ * @param name
+ * The generic name that should be used to refer to this argument.
+ * @param shortIdentifier
+ * The single-character identifier for this argument, or
+ * <CODE>null</CODE> if there is none.
+ * @param longIdentifier
+ * The long identifier for this argument, or <CODE>null</CODE> if
+ * there is none.
+ * @param isRequired
+ * Indicates whether this argument must be specified on the command
+ * line.
+ * @param needsValue
+ * Indicates whether this argument requires a value.
+ * @param valuePlaceholder
+ * The placeholder for the argument value that will be displayed in
+ * usage information, or <CODE>null</CODE> if this argument does not
+ * require a value.
+ * @param allowedValues
+ * The set of values that are allowed for use for this argument. If
+ * they are not to be treated in a case-sensitive value then they
+ * should all be formatted in lowercase.
+ * @param caseSensitive
+ * Indicates whether the set of allowed values should be treated in a
+ * case-sensitive manner.
+ * @param description
+ * LocalizableMessage for the description of this argument.
+ * @throws ArgumentException
+ * If there is a problem with any of the parameters used to create
+ * this argument.
+ */
+ public MultiChoiceArgument(final String name,
+ final Character shortIdentifier, final String longIdentifier,
+ final boolean isRequired, final boolean needsValue,
+ final LocalizableMessage valuePlaceholder,
+ final Collection<T> allowedValues, final boolean caseSensitive,
+ final LocalizableMessage description) throws ArgumentException
+ {
+ super(name, shortIdentifier, longIdentifier, isRequired, false, needsValue,
+ valuePlaceholder, null, null, description);
+
+ this.allowedValues = allowedValues;
+ this.caseSensitive = caseSensitive;
+ }
+
+
+
+ /**
+ * Retrieves the set of allowed values for this argument. The contents of this
+ * set must not be altered by the caller.
*
* @return The set of allowed values for this argument.
*/
@@ -182,8 +179,39 @@
/**
- * Indicates whether the set of allowed values for this argument
- * should be treated in a case-sensitive manner.
+ * Retrieves the string vale for this argument. If it has multiple values,
+ * then the first will be returned. If it does not have any values, then the
+ * default value will be returned.
+ *
+ * @return The string value for this argument, or <CODE>null</CODE> if there
+ * are no values and no default value has been given.
+ * @throws ArgumentException
+ * The value cannot be parsed.
+ */
+ public T getTypedValue() throws ArgumentException
+ {
+ final String v = super.getValue();
+ if (v == null)
+ {
+ return null;
+ }
+ for (final T o : allowedValues)
+ {
+ if ((caseSensitive && o.toString().equals(v))
+ || o.toString().equalsIgnoreCase(v))
+ {
+ return o;
+ }
+ }
+ // TODO: Some message
+ throw new ArgumentException(null);
+ }
+
+
+
+ /**
+ * Indicates whether the set of allowed values for this argument should be
+ * treated in a case-sensitive manner.
*
* @return <CODE>true</CODE> if the values are to be treated in a
* case-sensitive manner, or <CODE>false</CODE> if not.
@@ -196,47 +224,15 @@
/**
- * Indicates whether the provided value is acceptable for use in this
- * argument.
- *
- * @param valueString
- * The value for which to make the determination.
- * @param invalidReason
- * A buffer into which the invalid reason may be written if
- * the value is not acceptable.
- * @return <CODE>true</CODE> if the value is acceptable, or
- * <CODE>false</CODE> if it is not.
- */
- public boolean valueIsAcceptable(String valueString,
- LocalizableMessageBuilder invalidReason)
- {
- for (T o : allowedValues)
- {
- if ((caseSensitive && o.toString().equals(valueString))
- || o.toString().equalsIgnoreCase(valueString))
- {
- return true;
- }
- }
- invalidReason.append(ERR_MCARG_VALUE_NOT_ALLOWED.get(getName(),
- valueString));
-
- return false;
- }
-
-
-
- /**
- * Specifies the default value that will be used for this argument if
- * it is not specified on the command line and it is not set from a
- * properties file.
+ * Specifies the default value that will be used for this argument if it is
+ * not specified on the command line and it is not set from a properties file.
*
* @param defaultValue
- * The default value that will be used for this argument if
- * it is not specified on the command line and it is not set
- * from a properties file.
+ * The default value that will be used for this argument if it is not
+ * specified on the command line and it is not set from a properties
+ * file.
*/
- public void setDefaultValue(T defaultValue)
+ public void setDefaultValue(final T defaultValue)
{
super.setDefaultValue(defaultValue.toString());
}
@@ -244,31 +240,32 @@
/**
- * Retrieves the string vale for this argument. If it has multiple
- * values, then the first will be returned. If it does not have any
- * values, then the default value will be returned.
+ * Indicates whether the provided value is acceptable for use in this
+ * argument.
*
- * @return The string value for this argument, or <CODE>null</CODE> if
- * there are no values and no default value has been given.
- * @throws ArgumentException
- * The value cannot be parsed.
+ * @param valueString
+ * The value for which to make the determination.
+ * @param invalidReason
+ * A buffer into which the invalid reason may be written if the value
+ * is not acceptable.
+ * @return <CODE>true</CODE> if the value is acceptable, or <CODE>false</CODE>
+ * if it is not.
*/
- public T getTypedValue() throws ArgumentException
+ @Override
+ public boolean valueIsAcceptable(final String valueString,
+ final LocalizableMessageBuilder invalidReason)
{
- String v = super.getValue();
- if (v == null)
+ for (final T o : allowedValues)
{
- return null;
- }
- for (T o : allowedValues)
- {
- if ((caseSensitive && o.toString().equals(v))
- || o.toString().equalsIgnoreCase(v))
+ if ((caseSensitive && o.toString().equals(valueString))
+ || o.toString().equalsIgnoreCase(valueString))
{
- return o;
+ return true;
}
}
- // TODO: Some message
- throw new ArgumentException(null);
+ invalidReason.append(ERR_MCARG_VALUE_NOT_ALLOWED
+ .get(getName(), valueString));
+
+ return false;
}
}
--
Gitblit v1.10.0