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/FileBasedArgument.java | 246 ++++++++++++++++++++++++-------------------------
1 files changed, 120 insertions(+), 126 deletions(-)
diff --git a/sdk/src/com/sun/opends/sdk/tools/FileBasedArgument.java b/sdk/src/com/sun/opends/sdk/tools/FileBasedArgument.java
index c476bf2..0c333c9 100644
--- a/sdk/src/com/sun/opends/sdk/tools/FileBasedArgument.java
+++ b/sdk/src/com/sun/opends/sdk/tools/FileBasedArgument.java
@@ -29,7 +29,7 @@
import static com.sun.opends.sdk.messages.Messages.*;
-import static com.sun.opends.sdk.util.StaticUtils.*;
+import static com.sun.opends.sdk.util.StaticUtils.getExceptionMessage;
import java.io.BufferedReader;
import java.io.File;
@@ -41,28 +41,27 @@
-
/**
- * This class defines an argument whose value will be read from a file
- * rather than actually specified on the command-line. When a value is
- * specified on the command line, it will be treated as the path to the
- * file containing the actual value rather than the value itself. <BR>
+ * This class defines an argument whose value will be read from a file rather
+ * than actually specified on the command-line. When a value is specified on the
+ * command line, it will be treated as the path to the file containing the
+ * actual value rather than the value itself. <BR>
* <BR>
- * Note that if if no filename is provided on the command line but a
- * default value is specified programatically or if the default value is
- * read from a specified property, then that default value will be taken
- * as the actual value rather than a filename. <BR>
+ * Note that if if no filename is provided on the command line but a default
+ * value is specified programatically or if the default value is read from a
+ * specified property, then that default value will be taken as the actual value
+ * rather than a filename. <BR>
* <BR>
- * Also note that this argument type assumes that the entire value for
- * the argument is on a single line in the specified file. If the file
- * contains multiple lines, then only the first line will be read.
+ * Also note that this argument type assumes that the entire value for the
+ * argument is on a single line in the specified file. If the file contains
+ * multiple lines, then only the first line will be read.
*/
final class FileBasedArgument extends Argument
{
// The mapping between filenames specified and the first lines read
// from those
// files.
- private LinkedHashMap<String, String> namesToValues;
+ private final LinkedHashMap<String, String> namesToValues;
@@ -70,86 +69,45 @@
* Creates a new file-based 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 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 FileBasedArgument(String name, Character shortIdentifier,
- String longIdentifier, boolean isRequired,
- LocalizableMessage valuePlaceholder, LocalizableMessage description)
- throws ArgumentException
- {
- super(name, shortIdentifier, longIdentifier, isRequired, false,
- true, valuePlaceholder, null, null, description);
-
- namesToValues = new LinkedHashMap<String, String>();
- }
-
-
-
- /**
- * Creates a new file-based 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 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 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 FileBasedArgument(String name, Character shortIdentifier,
- String longIdentifier, boolean isRequired, boolean isMultiValued,
- LocalizableMessage valuePlaceholder, String defaultValue,
- String propertyName, LocalizableMessage description)
- throws ArgumentException
+ public FileBasedArgument(final String name, final Character shortIdentifier,
+ final String longIdentifier, final boolean isRequired,
+ final boolean isMultiValued, final LocalizableMessage valuePlaceholder,
+ final String defaultValue, final String propertyName,
+ final LocalizableMessage description) throws ArgumentException
{
- super(name, shortIdentifier, longIdentifier, isRequired,
- isMultiValued, true, valuePlaceholder, defaultValue,
- propertyName, description);
+ super(name, shortIdentifier, longIdentifier, isRequired, isMultiValued,
+ true, valuePlaceholder, defaultValue, propertyName, description);
namesToValues = new LinkedHashMap<String, String>();
}
@@ -157,11 +115,71 @@
/**
- * Retrieves a map between the filenames specified on the command line
- * and the first lines read from those files.
+ * Creates a new file-based argument with the provided information.
*
- * @return A map between the filenames specified on the command line
- * and the first lines read from those files.
+ * @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 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 FileBasedArgument(final String name, final Character shortIdentifier,
+ final String longIdentifier, final boolean isRequired,
+ final LocalizableMessage valuePlaceholder,
+ final LocalizableMessage description) throws ArgumentException
+ {
+ super(name, shortIdentifier, longIdentifier, isRequired, false, true,
+ valuePlaceholder, null, null, description);
+
+ namesToValues = new LinkedHashMap<String, String>();
+ }
+
+
+
+ /**
+ * Adds a value to the set of values for this argument. This should only be
+ * called if the value is allowed by the <CODE>valueIsAcceptable</CODE>
+ * method. Note that in this case, correct behavior depends on a previous
+ * successful call to <CODE>valueIsAcceptable</CODE> so that the value read
+ * from the file may be stored in the name-to-value hash and used in place of
+ * the filename here.
+ *
+ * @param valueString
+ * The string representation of the value to add to this argument.
+ */
+ @Override
+ public void addValue(final String valueString)
+ {
+ final String actualValue = namesToValues.get(valueString);
+ if (actualValue != null)
+ {
+ super.addValue(actualValue);
+ }
+ }
+
+
+
+ /**
+ * Retrieves a map between the filenames specified on the command line and the
+ * first lines read from those files.
+ *
+ * @return A map between the filenames specified on the command line and the
+ * first lines read from those files.
*/
public LinkedHashMap<String, String> getNameToValueMap()
{
@@ -177,13 +195,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, make sure that the specified file exists.
File valueFile;
@@ -197,10 +216,10 @@
return false;
}
}
- catch (Exception e)
+ catch (final Exception e)
{
- invalidReason.append(ERR_FILEARG_CANNOT_VERIFY_FILE_EXISTENCE
- .get(valueString, getName(), getExceptionMessage(e)));
+ invalidReason.append(ERR_FILEARG_CANNOT_VERIFY_FILE_EXISTENCE.get(
+ valueString, getName(), getExceptionMessage(e)));
return false;
}
@@ -210,10 +229,10 @@
{
reader = new BufferedReader(new FileReader(valueFile));
}
- catch (Exception e)
+ catch (final Exception e)
{
- invalidReason.append(ERR_FILEARG_CANNOT_OPEN_FILE.get(
- valueString, getName(), getExceptionMessage(e)));
+ invalidReason.append(ERR_FILEARG_CANNOT_OPEN_FILE.get(valueString,
+ getName(), getExceptionMessage(e)));
return false;
}
@@ -223,10 +242,10 @@
{
line = reader.readLine();
}
- catch (Exception e)
+ catch (final Exception e)
{
- invalidReason.append(ERR_FILEARG_CANNOT_READ_FILE.get(
- valueString, getName(), getExceptionMessage(e)));
+ invalidReason.append(ERR_FILEARG_CANNOT_READ_FILE.get(valueString,
+ getName(), getExceptionMessage(e)));
return false;
}
finally
@@ -235,7 +254,7 @@
{
reader.close();
}
- catch (Exception e)
+ catch (final Exception e)
{
}
}
@@ -244,8 +263,7 @@
if (line == null)
{
- invalidReason.append(ERR_FILEARG_EMPTY_FILE.get(valueString,
- getName()));
+ invalidReason.append(ERR_FILEARG_EMPTY_FILE.get(valueString, getName()));
return false;
}
@@ -257,28 +275,4 @@
namesToValues.put(valueString, line);
return true;
}
-
-
-
- /**
- * Adds a value to the set of values for this argument. This should
- * only be called if the value is allowed by the
- * <CODE>valueIsAcceptable</CODE> method. Note that in this case,
- * correct behavior depends on a previous successful call to
- * <CODE>valueIsAcceptable</CODE> so that the value read from the file
- * may be stored in the name-to-value hash and used in place of the
- * filename here.
- *
- * @param valueString
- * The string representation of the value to add to this
- * argument.
- */
- public void addValue(String valueString)
- {
- String actualValue = namesToValues.get(valueString);
- if (actualValue != null)
- {
- super.addValue(actualValue);
- }
- }
}
--
Gitblit v1.10.0