From db3ffddbfab6dc0d5219247d432ef36c1a3a2055 Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Tue, 01 Mar 2016 09:43:01 +0000
Subject: [PATCH] Code cleanup
---
opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/ConnectionFactoryProvider.java | 54 ++---------------
opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/Utils.java | 79 ++++++++++++++++++++++++++
2 files changed, 86 insertions(+), 47 deletions(-)
diff --git a/opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/ConnectionFactoryProvider.java b/opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/ConnectionFactoryProvider.java
index 39cf434..7a3c7c4 100644
--- a/opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/ConnectionFactoryProvider.java
+++ b/opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/ConnectionFactoryProvider.java
@@ -20,6 +20,7 @@
import static com.forgerock.opendj.cli.CliConstants.DEFAULT_LDAP_PORT;
import static com.forgerock.opendj.cli.CliMessages.*;
import static com.forgerock.opendj.cli.Utils.getHostNameForLdapUrl;
+import static com.forgerock.opendj.cli.Utils.throwIfArgumentsConflict;
import static org.forgerock.opendj.ldap.LDAPConnectionFactory.AUTHN_BIND_REQUEST;
import static org.forgerock.opendj.ldap.LDAPConnectionFactory.CONNECT_TIMEOUT;
import static org.forgerock.opendj.ldap.LDAPConnectionFactory.SSL_CONTEXT;
@@ -447,45 +448,12 @@
* an argument exception is thrown.
*/
private void checkForConflictingArguments() throws ArgumentException {
- // Couldn't have at the same time bindPassword and bindPasswordFile
- if (bindPasswordArg.isPresent() && bindPasswordFileArg.isPresent()) {
- final LocalizableMessage message =
- ERR_TOOL_CONFLICTING_ARGS.get(bindPasswordArg.getLongIdentifier(),
- bindPasswordFileArg.getLongIdentifier());
- throw new ArgumentException(message);
- }
-
- /*
- * Couldn't have at the same time trustAll and trustStore related arg
- */
- if (trustAllArg.isPresent() && trustStorePathArg.isPresent()) {
- final LocalizableMessage message =
- ERR_TOOL_CONFLICTING_ARGS.get(trustAllArg.getLongIdentifier(),
- trustStorePathArg.getLongIdentifier());
- throw new ArgumentException(message);
- }
- if (trustAllArg.isPresent() && trustStorePasswordArg.isPresent()) {
- final LocalizableMessage message =
- ERR_TOOL_CONFLICTING_ARGS.get(trustAllArg.getLongIdentifier(),
- trustStorePasswordArg.getLongIdentifier());
- throw new ArgumentException(message);
- }
- if (trustAllArg.isPresent() && trustStorePasswordFileArg.isPresent()) {
- final LocalizableMessage message =
- ERR_TOOL_CONFLICTING_ARGS.get(trustAllArg.getLongIdentifier(),
- trustStorePasswordFileArg.getLongIdentifier());
- throw new ArgumentException(message);
- }
-
- /*
- * Couldn't have at the same time trustStorePasswordArg and trustStorePasswordFileArg
- */
- if (trustStorePasswordArg.isPresent() && trustStorePasswordFileArg.isPresent()) {
- final LocalizableMessage message =
- ERR_TOOL_CONFLICTING_ARGS.get(trustStorePasswordArg.getLongIdentifier(),
- trustStorePasswordFileArg.getLongIdentifier());
- throw new ArgumentException(message);
- }
+ throwIfArgumentsConflict(bindPasswordArg, bindPasswordFileArg);
+ throwIfArgumentsConflict(trustAllArg, trustStorePathArg);
+ throwIfArgumentsConflict(trustAllArg, trustStorePasswordArg);
+ throwIfArgumentsConflict(trustAllArg, trustStorePasswordFileArg);
+ throwIfArgumentsConflict(trustStorePasswordArg, trustStorePasswordFileArg);
+ throwIfArgumentsConflict(useStartTLSArg, useSSLArg);
if (trustStorePathArg.isPresent()) {
// Check that the path exists and is readable
@@ -504,14 +472,6 @@
throw new ArgumentException(message);
}
}
-
- // Couldn't have at the same time startTLSArg and useSSLArg
- if (useStartTLSArg.isPresent() && useSSLArg.isPresent()) {
- final LocalizableMessage message =
- ERR_TOOL_CONFLICTING_ARGS.get(useStartTLSArg.getLongIdentifier(), useSSLArg
- .getLongIdentifier());
- throw new ArgumentException(message);
- }
}
/**
diff --git a/opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/Utils.java b/opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/Utils.java
index 5d6cf7d..0bff591 100644
--- a/opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/Utils.java
+++ b/opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/Utils.java
@@ -31,6 +31,7 @@
import java.security.GeneralSecurityException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
+import java.util.Collection;
import java.util.Date;
import java.util.StringTokenizer;
import java.util.TimeZone;
@@ -658,4 +659,82 @@
}
};
}
+
+ /**
+ * Throws an {@link ArgumentException} if both provided {@link Argument} are presents in the command line arguments.
+ *
+ * @param arg1
+ * The first {@link Argument} which should not be present if {@literal arg2} is.
+ * @param arg2
+ * The second {@link Argument} which should not be present if {@literal arg1} is.
+ * @throws ArgumentException
+ * If both provided {@link Argument} are presents in the command line arguments
+ */
+ public static void throwIfArgumentsConflict(final Argument arg1, final Argument arg2) throws ArgumentException {
+ if (argsConflicts(arg1, arg2)) {
+ throw new ArgumentException(conflictingArgsErrorMessage(arg1, arg2));
+ }
+ }
+
+ /**
+ * Adds a {@link LocalizableMessage} to the provided {@link Collection<LocalizableMessage>}
+ * if both provided {@link Argument} are presents in the command line arguments.
+ *
+ * @param errors
+ * The {@link Collection<LocalizableMessage>} to use to add the conflict error (if occurs).
+ * @param arg1
+ * The first {@link Argument} which should not be present if {@literal arg2} is.
+ * @param arg2
+ * The second {@link Argument} which should not be present if {@literal arg1} is.
+ */
+ public static void addErrorMessageIfArgumentsConflict(
+ final Collection<LocalizableMessage> errors, final Argument arg1, final Argument arg2) {
+ if (argsConflicts(arg1, arg2)) {
+ errors.add(conflictingArgsErrorMessage(arg1, arg2));
+ }
+ }
+
+ /**
+ * Return {@code true} if provided {@link Argument} are presents in the command line arguments.
+ * <p>
+ * If so, adds a {@link LocalizableMessage} to the provided {@link LocalizableMessageBuilder}.
+ *
+ * @param builder
+ * The {@link LocalizableMessageBuilder} to use to write the conflict error (if occurs).
+ * @param arg1
+ * The first {@link Argument} which should not be present if {@literal arg2} is.
+ * @param arg2
+ * The second {@link Argument} which should not be present if {@literal arg1} is.
+ * @return {@code true} if provided {@link Argument} are presents in the command line arguments.
+ */
+ public static boolean appendErrorMessageIfArgumentsConflict(
+ final LocalizableMessageBuilder builder, final Argument arg1, final Argument arg2) {
+ if (argsConflicts(arg1, arg2)) {
+ if (builder.length() > 0) {
+ builder.append(LINE_SEPARATOR);
+ }
+ builder.append(conflictingArgsErrorMessage(arg1, arg2));
+ return true;
+ }
+ return false;
+ }
+
+ private static boolean argsConflicts(final Argument arg1, final Argument arg2) {
+ return arg1.isPresent() && arg2.isPresent();
+ }
+
+ /**
+ * Returns a {@link LocalizableMessage} which explains to the user
+ * that provided {@link Argument}s can not be used together on the command line.
+ *
+ * @param arg1
+ * The first {@link Argument} which conflicts with {@literal arg2}.
+ * @param arg2
+ * The second {@link Argument} which conflicts with {@literal arg1}.
+ * @return A {@link LocalizableMessage} which explains to the user that arguments
+ * can not be used together on the command line.
+ */
+ public static LocalizableMessage conflictingArgsErrorMessage(final Argument arg1, final Argument arg2) {
+ return ERR_TOOL_CONFLICTING_ARGS.get(arg1.getLongIdentifier(), arg2.getLongIdentifier());
+ }
}
--
Gitblit v1.10.0