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/IntegerArgument.java |  793 ++++++++++++++++++++++++++++----------------------------
 1 files changed, 393 insertions(+), 400 deletions(-)

diff --git a/sdk/src/com/sun/opends/sdk/tools/IntegerArgument.java b/sdk/src/com/sun/opends/sdk/tools/IntegerArgument.java
index 57d8a68..9681ddf 100644
--- a/sdk/src/com/sun/opends/sdk/tools/IntegerArgument.java
+++ b/sdk/src/com/sun/opends/sdk/tools/IntegerArgument.java
@@ -28,32 +28,34 @@
 
 
 
-import static com.sun.opends.sdk.messages.Messages.*;
+import static com.sun.opends.sdk.messages.Messages.ERR_ARG_CANNOT_DECODE_AS_INT;
+import static com.sun.opends.sdk.messages.Messages.ERR_INTARG_LOWER_BOUND_ABOVE_UPPER_BOUND;
+import static com.sun.opends.sdk.messages.Messages.ERR_INTARG_VALUE_ABOVE_UPPER_BOUND;
+import static com.sun.opends.sdk.messages.Messages.ERR_INTARG_VALUE_BELOW_LOWER_BOUND;
 
 import org.opends.sdk.LocalizableMessage;
 import org.opends.sdk.LocalizableMessageBuilder;
 
 
 
-
 /**
- * This class defines an argument type that will only accept integer
- * values, and potentially only those in a given range.
+ * This class defines an argument type that will only accept integer values, and
+ * potentially only those in a given range.
  */
 final class IntegerArgument extends Argument
 {
   // Indicates whether a lower bound will be enforced for this argument.
-  private boolean hasLowerBound;
+  private final boolean hasLowerBound;
 
   // Indicates whether an upper bound will be enforced for this
   // argument.
-  private boolean hasUpperBound;
+  private final boolean hasUpperBound;
 
   // The lower bound that will be enforced for this argument.
-  private double lowerBound;
+  private final double lowerBound;
 
   // The upper bound that will be enforced for this argument.
-  private double upperBound;
+  private final double upperBound;
 
 
 
@@ -61,36 +63,364 @@
    * Creates a new integer 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.
+   *          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.
    * @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.
+   * @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.
+   * @param hasLowerBound
+   *          Indicates whether a lower bound should be enforced for values of
+   *          this argument.
+   * @param lowerBound
+   *          The lower bound that should be enforced for values of this
+   *          argument.
+   * @param hasUpperBound
+   *          Indicates whether an upperbound should be enforced for values of
+   *          this argument.
+   * @param upperBound
+   *          The upper bound that should be enforced for values of this
+   *          argument.
    * @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 IntegerArgument(String name, Character shortIdentifier,
-      String longIdentifier, boolean isRequired, boolean needsValue,
-      LocalizableMessage valuePlaceholder, LocalizableMessage description)
+  public IntegerArgument(final String name, final Character shortIdentifier,
+      final String longIdentifier, final boolean isRequired,
+      final boolean isMultiValued, final boolean needsValue,
+      final LocalizableMessage valuePlaceholder, final double defaultValue,
+      final String propertyName, final boolean hasLowerBound,
+      final double lowerBound, final boolean hasUpperBound,
+      final double upperBound, final LocalizableMessage description)
       throws ArgumentException
   {
-    super(name, shortIdentifier, longIdentifier, isRequired, false,
-        needsValue, valuePlaceholder, null, null, description);
+    super(name, shortIdentifier, longIdentifier, isRequired, isMultiValued,
+        needsValue, valuePlaceholder, String.valueOf(defaultValue),
+        propertyName, description);
+
+    this.hasLowerBound = hasLowerBound;
+    this.hasUpperBound = hasUpperBound;
+    this.lowerBound = lowerBound;
+    this.upperBound = upperBound;
+
+    if (hasLowerBound && hasUpperBound && (lowerBound > upperBound))
+    {
+      final LocalizableMessage message = ERR_INTARG_LOWER_BOUND_ABOVE_UPPER_BOUND
+          .get(name, lowerBound, upperBound);
+      throw new ArgumentException(message);
+    }
+  }
+
+
+
+  /**
+   * Creates a new integer 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 isMultiValued
+   *          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.
+   * @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.
+   * @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.
+   * @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 IntegerArgument(final String name, final Character shortIdentifier,
+      final String longIdentifier, final boolean isRequired,
+      final boolean isMultiValued, final boolean needsValue,
+      final LocalizableMessage valuePlaceholder, final double defaultValue,
+      final String propertyName, final LocalizableMessage description)
+      throws ArgumentException
+  {
+    super(name, shortIdentifier, longIdentifier, isRequired, isMultiValued,
+        needsValue, valuePlaceholder, String.format("%f", defaultValue),
+        propertyName, description);
+
+    hasLowerBound = false;
+    hasUpperBound = false;
+    lowerBound = Integer.MIN_VALUE;
+    upperBound = Integer.MAX_VALUE;
+  }
+
+
+
+  /**
+   * Creates a new integer 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 isMultiValued
+   *          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.
+   * @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.
+   * @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.
+   * @param hasLowerBound
+   *          Indicates whether a lower bound should be enforced for values of
+   *          this argument.
+   * @param lowerBound
+   *          The lower bound that should be enforced for values of this
+   *          argument.
+   * @param hasUpperBound
+   *          Indicates whether an upperbound should be enforced for values of
+   *          this argument.
+   * @param upperBound
+   *          The upper bound that should be enforced for values of this
+   *          argument.
+   * @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 IntegerArgument(final String name, final Character shortIdentifier,
+      final String longIdentifier, final boolean isRequired,
+      final boolean isMultiValued, final boolean needsValue,
+      final LocalizableMessage valuePlaceholder, final int defaultValue,
+      final String propertyName, final boolean hasLowerBound,
+      final double lowerBound, final boolean hasUpperBound,
+      final double upperBound, final LocalizableMessage description)
+      throws ArgumentException
+  {
+    super(name, shortIdentifier, longIdentifier, isRequired, isMultiValued,
+        needsValue, valuePlaceholder, String.valueOf(defaultValue),
+        propertyName, description);
+
+    this.hasLowerBound = hasLowerBound;
+    this.hasUpperBound = hasUpperBound;
+    this.lowerBound = lowerBound;
+    this.upperBound = upperBound;
+
+    if (hasLowerBound && hasUpperBound && (lowerBound > upperBound))
+    {
+      final LocalizableMessage message = ERR_INTARG_LOWER_BOUND_ABOVE_UPPER_BOUND
+          .get(name, lowerBound, upperBound);
+      throw new ArgumentException(message);
+    }
+  }
+
+
+
+  /**
+   * Creates a new integer 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 isMultiValued
+   *          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.
+   * @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.
+   * @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.
+   * @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 IntegerArgument(final String name, final Character shortIdentifier,
+      final String longIdentifier, final boolean isRequired,
+      final boolean isMultiValued, final boolean needsValue,
+      final LocalizableMessage valuePlaceholder, final int defaultValue,
+      final String propertyName, final LocalizableMessage description)
+      throws ArgumentException
+  {
+    super(name, shortIdentifier, longIdentifier, isRequired, isMultiValued,
+        needsValue, valuePlaceholder, String.valueOf(defaultValue),
+        propertyName, description);
+
+    hasLowerBound = false;
+    hasUpperBound = false;
+    lowerBound = Integer.MIN_VALUE;
+    upperBound = Integer.MAX_VALUE;
+  }
+
+
+
+  /**
+   * Creates a new integer 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 hasLowerBound
+   *          Indicates whether a lower bound should be enforced for values of
+   *          this argument.
+   * @param lowerBound
+   *          The lower bound that should be enforced for values of this
+   *          argument.
+   * @param hasUpperBound
+   *          Indicates whether an upperbound should be enforced for values of
+   *          this argument.
+   * @param upperBound
+   *          The upper bound that should be enforced for values of this
+   *          argument.
+   * @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 IntegerArgument(final String name, final Character shortIdentifier,
+      final String longIdentifier, final boolean isRequired,
+      final boolean needsValue, final LocalizableMessage valuePlaceholder,
+      final boolean hasLowerBound, final double lowerBound,
+      final boolean hasUpperBound, final double upperBound,
+      final LocalizableMessage description) throws ArgumentException
+  {
+    super(name, shortIdentifier, longIdentifier, isRequired, false, needsValue,
+        valuePlaceholder, null, null, description);
+
+    this.hasLowerBound = hasLowerBound;
+    this.hasUpperBound = hasUpperBound;
+    this.lowerBound = lowerBound;
+    this.upperBound = upperBound;
+
+    if (hasLowerBound && hasUpperBound && (lowerBound > upperBound))
+    {
+      final LocalizableMessage message = ERR_INTARG_LOWER_BOUND_ABOVE_UPPER_BOUND
+          .get(name, lowerBound, upperBound);
+      throw new ArgumentException(message);
+    }
+  }
+
+
+
+  /**
+   * Creates a new integer 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 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 IntegerArgument(final String name, final Character shortIdentifier,
+      final String longIdentifier, final boolean isRequired,
+      final boolean needsValue, final LocalizableMessage valuePlaceholder,
+      final LocalizableMessage description) throws ArgumentException
+  {
+    super(name, shortIdentifier, longIdentifier, isRequired, false, needsValue,
+        valuePlaceholder, null, null, description);
 
     hasLowerBound = false;
     hasUpperBound = false;
@@ -101,359 +431,9 @@
 
 
   /**
-   * Creates a new integer argument with the provided information.
+   * Retrieves the lower bound that may be enforced for values of this argument.
    *
-   * @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 hasLowerBound
-   *          Indicates whether a lower bound should be enforced for
-   *          values of this argument.
-   * @param lowerBound
-   *          The lower bound that should be enforced for values of this
-   *          argument.
-   * @param hasUpperBound
-   *          Indicates whether an upperbound should be enforced for
-   *          values of this argument.
-   * @param upperBound
-   *          The upper bound that should be enforced for values of this
-   *          argument.
-   * @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 IntegerArgument(String name, Character shortIdentifier,
-      String longIdentifier, boolean isRequired, boolean needsValue,
-      LocalizableMessage valuePlaceholder, boolean hasLowerBound,
-      double lowerBound, boolean hasUpperBound, double upperBound,
-      LocalizableMessage description) throws ArgumentException
-  {
-    super(name, shortIdentifier, longIdentifier, isRequired, false,
-        needsValue, valuePlaceholder, null, null, description);
-
-    this.hasLowerBound = hasLowerBound;
-    this.hasUpperBound = hasUpperBound;
-    this.lowerBound = lowerBound;
-    this.upperBound = upperBound;
-
-    if (hasLowerBound && hasUpperBound && (lowerBound > upperBound))
-    {
-      LocalizableMessage message =
-          ERR_INTARG_LOWER_BOUND_ABOVE_UPPER_BOUND.get(name,
-              lowerBound, upperBound);
-      throw new ArgumentException(message);
-    }
-  }
-
-
-
-  /**
-   * Creates a new integer 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 isMultiValued
-   *          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.
-   * @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.
-   * @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.
-   * @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 IntegerArgument(String name, Character shortIdentifier,
-      String longIdentifier, boolean isRequired, boolean isMultiValued,
-      boolean needsValue, LocalizableMessage valuePlaceholder, int defaultValue,
-      String propertyName, LocalizableMessage description)
-      throws ArgumentException
-  {
-    super(name, shortIdentifier, longIdentifier, isRequired,
-        isMultiValued, needsValue, valuePlaceholder, String
-            .valueOf(defaultValue), propertyName, description);
-
-    hasLowerBound = false;
-    hasUpperBound = false;
-    lowerBound = Integer.MIN_VALUE;
-    upperBound = Integer.MAX_VALUE;
-  }
-
-
-
-  /**
-   * Creates a new integer 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 isMultiValued
-   *          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.
-   * @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.
-   * @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.
-   * @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 IntegerArgument(String name, Character shortIdentifier,
-      String longIdentifier, boolean isRequired, boolean isMultiValued,
-      boolean needsValue, LocalizableMessage valuePlaceholder,
-      double defaultValue, String propertyName, LocalizableMessage description)
-      throws ArgumentException
-  {
-    super(name, shortIdentifier, longIdentifier, isRequired,
-        isMultiValued, needsValue, valuePlaceholder, String.format(
-            "%f", defaultValue), propertyName, description);
-
-    hasLowerBound = false;
-    hasUpperBound = false;
-    lowerBound = Integer.MIN_VALUE;
-    upperBound = Integer.MAX_VALUE;
-  }
-
-
-
-  /**
-   * Creates a new integer 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 isMultiValued
-   *          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.
-   * @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.
-   * @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.
-   * @param hasLowerBound
-   *          Indicates whether a lower bound should be enforced for
-   *          values of this argument.
-   * @param lowerBound
-   *          The lower bound that should be enforced for values of this
-   *          argument.
-   * @param hasUpperBound
-   *          Indicates whether an upperbound should be enforced for
-   *          values of this argument.
-   * @param upperBound
-   *          The upper bound that should be enforced for values of this
-   *          argument.
-   * @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 IntegerArgument(String name, Character shortIdentifier,
-      String longIdentifier, boolean isRequired, boolean isMultiValued,
-      boolean needsValue, LocalizableMessage valuePlaceholder, int defaultValue,
-      String propertyName, boolean hasLowerBound, double lowerBound,
-      boolean hasUpperBound, double upperBound, LocalizableMessage description)
-      throws ArgumentException
-  {
-    super(name, shortIdentifier, longIdentifier, isRequired,
-        isMultiValued, needsValue, valuePlaceholder, String
-            .valueOf(defaultValue), propertyName, description);
-
-    this.hasLowerBound = hasLowerBound;
-    this.hasUpperBound = hasUpperBound;
-    this.lowerBound = lowerBound;
-    this.upperBound = upperBound;
-
-    if (hasLowerBound && hasUpperBound && (lowerBound > upperBound))
-    {
-      LocalizableMessage message =
-          ERR_INTARG_LOWER_BOUND_ABOVE_UPPER_BOUND.get(name,
-              lowerBound, upperBound);
-      throw new ArgumentException(message);
-    }
-  }
-
-
-
-  /**
-   * Creates a new integer 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 isMultiValued
-   *          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.
-   * @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.
-   * @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.
-   * @param hasLowerBound
-   *          Indicates whether a lower bound should be enforced for
-   *          values of this argument.
-   * @param lowerBound
-   *          The lower bound that should be enforced for values of this
-   *          argument.
-   * @param hasUpperBound
-   *          Indicates whether an upperbound should be enforced for
-   *          values of this argument.
-   * @param upperBound
-   *          The upper bound that should be enforced for values of this
-   *          argument.
-   * @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 IntegerArgument(String name, Character shortIdentifier,
-      String longIdentifier, boolean isRequired, boolean isMultiValued,
-      boolean needsValue, LocalizableMessage valuePlaceholder,
-      double defaultValue, String propertyName, boolean hasLowerBound,
-      double lowerBound, boolean hasUpperBound, double upperBound,
-      LocalizableMessage description) throws ArgumentException
-  {
-    super(name, shortIdentifier, longIdentifier, isRequired,
-        isMultiValued, needsValue, valuePlaceholder, String
-            .valueOf(defaultValue), propertyName, description);
-
-    this.hasLowerBound = hasLowerBound;
-    this.hasUpperBound = hasUpperBound;
-    this.lowerBound = lowerBound;
-    this.upperBound = upperBound;
-
-    if (hasLowerBound && hasUpperBound && (lowerBound > upperBound))
-    {
-      LocalizableMessage message =
-          ERR_INTARG_LOWER_BOUND_ABOVE_UPPER_BOUND.get(name,
-              lowerBound, upperBound);
-      throw new ArgumentException(message);
-    }
-  }
-
-
-
-  /**
-   * Indicates whether a lower bound should be enforced for values of
-   * this argument.
-   *
-   * @return <CODE>true</CODE> if a lower bound should be enforced for
-   *         values of this argument, or <CODE>false</CODE> if not.
-   */
-  public boolean hasLowerBound()
-  {
-    return hasLowerBound;
-  }
-
-
-
-  /**
-   * Retrieves the lower bound that may be enforced for values of this
-   * argument.
-   *
-   * @return The lower bound that may be enforced for values of this
-   *         argument.
+   * @return The lower bound that may be enforced for values of this argument.
    */
   public double getLowerBound()
   {
@@ -463,29 +443,41 @@
 
 
   /**
-   * Indicates whether a upper bound should be enforced for values of
-   * this argument.
+   * Retrieves the upper bound that may be enforced for values of this argument.
    *
-   * @return <CODE>true</CODE> if a upper bound should be enforced for
-   *         values of this argument, or <CODE>false</CODE> if not.
+   * @return The upper bound that may be enforced for values of this argument.
    */
-  public boolean hasUpperBound()
+  public double getUpperBound()
   {
-    return hasUpperBound;
+    return upperBound;
   }
 
 
 
   /**
-   * Retrieves the upper bound that may be enforced for values of this
+   * Indicates whether a lower bound should be enforced for values of this
    * argument.
    *
-   * @return The upper bound that may be enforced for values of this
-   *         argument.
+   * @return <CODE>true</CODE> if a lower bound should be enforced for values of
+   *         this argument, or <CODE>false</CODE> if not.
    */
-  public double getUpperBound()
+  public boolean hasLowerBound()
   {
-    return upperBound;
+    return hasLowerBound;
+  }
+
+
+
+  /**
+   * Indicates whether a upper bound should be enforced for values of this
+   * argument.
+   *
+   * @return <CODE>true</CODE> if a upper bound should be enforced for values of
+   *         this argument, or <CODE>false</CODE> if not.
+   */
+  public boolean hasUpperBound()
+  {
+    return hasUpperBound;
   }
 
 
@@ -497,13 +489,14 @@
    * @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.
+   *          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)
+  @Override
+  public boolean valueIsAcceptable(final String valueString,
+      final LocalizableMessageBuilder invalidReason)
   {
     // First, the value must be decodable as an integer.
     double intValue;
@@ -511,10 +504,10 @@
     {
       intValue = Double.parseDouble(valueString);
     }
-    catch (Exception e)
+    catch (final Exception e)
     {
-      invalidReason.append(ERR_ARG_CANNOT_DECODE_AS_INT.get(
-          valueString, getName()));
+      invalidReason.append(ERR_ARG_CANNOT_DECODE_AS_INT.get(valueString,
+          getName()));
       return false;
     }
 
@@ -523,8 +516,8 @@
     // to it.
     if (hasLowerBound && (intValue < lowerBound))
     {
-      invalidReason.append(ERR_INTARG_VALUE_BELOW_LOWER_BOUND.get(
-          getName(), intValue, lowerBound));
+      invalidReason.append(ERR_INTARG_VALUE_BELOW_LOWER_BOUND.get(getName(),
+          intValue, lowerBound));
       return false;
     }
 
@@ -534,8 +527,8 @@
     if (hasUpperBound && (intValue > upperBound))
     {
 
-      invalidReason.append(ERR_INTARG_VALUE_ABOVE_UPPER_BOUND.get(
-          getName(), intValue, upperBound));
+      invalidReason.append(ERR_INTARG_VALUE_ABOVE_UPPER_BOUND.get(getName(),
+          intValue, upperBound));
       return false;
     }
 

--
Gitblit v1.10.0