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