From df993e4e7a2b5af0c8e0907a80e1a4cef10ee56d Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Thu, 11 Feb 2016 14:17:18 +0000
Subject: [PATCH] OPENDJSDK-42 cli arguments fluent builder

---
 opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliMain.java |  192 +++++++++++++++++++++++++++---------------------
 1 files changed, 108 insertions(+), 84 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliMain.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliMain.java
index b1020dd..7dc799a 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliMain.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliMain.java
@@ -68,13 +68,13 @@
 import javax.net.ssl.SSLHandshakeException;
 import javax.net.ssl.TrustManager;
 
+import com.forgerock.opendj.cli.CommonArguments;
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageBuilder;
 import org.forgerock.i18n.LocalizableMessageDescriptor.Arg0;
 import org.forgerock.i18n.LocalizableMessageDescriptor.Arg1;
 import org.forgerock.i18n.LocalizableMessageDescriptor.Arg2;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
-import org.forgerock.opendj.config.server.ConfigException;
 import org.opends.admin.ads.*;
 import org.opends.admin.ads.ADSContext.ADSPropertySyntax;
 import org.opends.admin.ads.ADSContext.AdministratorProperty;
@@ -396,14 +396,7 @@
       return CANNOT_INITIALIZE_ARGS;
     }
 
-    try
-    {
-      argParser.getSecureArgsList().initArgumentsWithConfiguration();
-    }
-    catch (ConfigException ce)
-    {
-      // Ignore.
-    }
+    argParser.getSecureArgsList().initArgumentsWithConfiguration(argParser);
 
     // Parse the command-line arguments provided to this program.
     try
@@ -472,10 +465,11 @@
     {
       try
       {
-        userProvidedAdminPwdFile = new FileBasedArgument(
-            "adminPasswordFile", OPTION_SHORT_BINDPWD_FILE, "adminPasswordFile", false, false,
-            INFO_BINDPWD_FILE_PLACEHOLDER.get(), null, null,
-            INFO_DESCRIPTION_REPLICATION_ADMIN_BINDPASSWORDFILE.get());
+        userProvidedAdminPwdFile = FileBasedArgument.builder("adminPasswordFile")
+                .shortIdentifier(OPTION_SHORT_BINDPWD_FILE)
+                .description(INFO_DESCRIPTION_REPLICATION_ADMIN_BINDPASSWORDFILE.get())
+                .valuePlaceholder(INFO_BINDPWD_FILE_PLACEHOLDER.get())
+                .buildArgument();
         userProvidedAdminPwdFile.getNameToValueMap().putAll(
             argParser.getSecureArgsList().bindPasswordFileArg.getNameToValueMap());
       }
@@ -8509,17 +8503,13 @@
       }
     }
 
-    IntegerArgument maximumDurationArg = new IntegerArgument(
-        argParser.maximumDurationArg.getName(),
-        argParser.maximumDurationArg.getShortIdentifier(),
-        argParser.maximumDurationArg.getLongIdentifier(),
-        argParser.maximumDurationArg.isRequired(),
-        argParser.maximumDurationArg.isMultiValued(),
-        argParser.maximumDurationArg.needsValue(),
-        argParser.maximumDurationArg.getValuePlaceholder(),
-        PurgeConflictsHistoricalTask.DEFAULT_MAX_DURATION,
-        argParser.maximumDurationArg.getPropertyName(),
-        argParser.maximumDurationArg.getDescription());
+    IntegerArgument maximumDurationArg = IntegerArgument.builder(argParser.maximumDurationArg.getLongIdentifier())
+            .shortIdentifier(argParser.maximumDurationArg.getShortIdentifier())
+            .description(argParser.maximumDurationArg.getDescription())
+            .required()
+            .defaultValue(PurgeConflictsHistoricalTask.DEFAULT_MAX_DURATION)
+            .valuePlaceholder(argParser.maximumDurationArg.getValuePlaceholder())
+            .buildArgument();
     maximumDurationArg.addValue(String.valueOf(uData.getMaximumDuration()));
     commandBuilder.addArgument(maximumDurationArg);
   }
@@ -8536,11 +8526,13 @@
   throws ArgumentException
   {
     List<String> baseDNs = uData.getBaseDNs();
-    StringArgument baseDNsArg = new StringArgument("baseDNs",
-        OPTION_SHORT_BASEDN,
-        OPTION_LONG_BASEDN, false, true, true, INFO_BASEDN_PLACEHOLDER.get(),
-        null,
-        null, INFO_DESCRIPTION_REPLICATION_BASEDNS.get());
+    StringArgument baseDNsArg =
+            StringArgument.builder(OPTION_LONG_BASEDN)
+                    .shortIdentifier(OPTION_SHORT_BASEDN)
+                    .description(INFO_DESCRIPTION_REPLICATION_BASEDNS.get())
+                    .multiValued()
+                    .valuePlaceholder(INFO_BASEDN_PLACEHOLDER.get())
+                    .buildArgument();
     for (String baseDN : baseDNs)
     {
       baseDNsArg.addValue(baseDN);
@@ -8593,9 +8585,11 @@
 
     if (argParser.isVerbose())
     {
-      commandBuilder.addArgument(new BooleanArgument("verbose",
-          OPTION_SHORT_VERBOSE,
-          OPTION_LONG_VERBOSE, INFO_DESCRIPTION_VERBOSE.get()));
+      commandBuilder.addArgument(
+              BooleanArgument.builder(OPTION_LONG_VERBOSE)
+                      .shortIdentifier(OPTION_SHORT_VERBOSE)
+                      .description(INFO_DESCRIPTION_VERBOSE.get())
+                      .buildArgument());
     }
 
     if (argParser.isScriptFriendly())
@@ -8845,11 +8839,8 @@
     {
       if (uData.getAdminUid() != null)
       {
-        StringArgument adminUID = new StringArgument(OPTION_LONG_ADMIN_UID, 'I',
-            OPTION_LONG_ADMIN_UID, false, false, true,
-            INFO_ADMINUID_PLACEHOLDER.get(),
-            Constants.GLOBAL_ADMIN_UID, null,
-            INFO_DESCRIPTION_REPLICATION_ADMIN_UID.get(ENABLE_REPLICATION_SUBCMD_NAME));
+        final StringArgument adminUID = CommonArguments.getAdminUid(
+                INFO_DESCRIPTION_REPLICATION_ADMIN_UID.get(ENABLE_REPLICATION_SUBCMD_NAME));
         adminUID.addValue(uData.getAdminUid());
         commandBuilder.addArgument(adminUID);
       }
@@ -8919,45 +8910,56 @@
 
     if (!uData.replicateSchema())
     {
-      commandBuilder.addArgument(new BooleanArgument(
-          "noschemareplication", null, "noSchemaReplication",
-          INFO_DESCRIPTION_ENABLE_REPLICATION_NO_SCHEMA_REPLICATION.get()));
+      commandBuilder.addArgument(
+              BooleanArgument.builder("noSchemaReplication")
+                      .description(INFO_DESCRIPTION_ENABLE_REPLICATION_NO_SCHEMA_REPLICATION.get())
+                      .buildArgument());
     }
     if (argParser.skipReplicationPortCheck())
     {
-      commandBuilder.addArgument(new BooleanArgument(
-          "skipportcheck", 'S', "skipPortCheck",
-          INFO_DESCRIPTION_ENABLE_REPLICATION_SKIPPORT.get()));
+      commandBuilder.addArgument(
+              BooleanArgument.builder("skipPortCheck")
+                      .shortIdentifier('S')
+                      .description(INFO_DESCRIPTION_ENABLE_REPLICATION_SKIPPORT.get())
+                      .buildArgument());
     }
     if (argParser.useSecondServerAsSchemaSource())
     {
-      commandBuilder.addArgument(new BooleanArgument(
-          "usesecondserverasschemasource", null,
-          "useSecondServerAsSchemaSource",
-          INFO_DESCRIPTION_ENABLE_REPLICATION_USE_SECOND_AS_SCHEMA_SOURCE.get(
-              "--" + argParser.noSchemaReplicationArg.getLongIdentifier())));
+      commandBuilder.addArgument(
+              BooleanArgument.builder("useSecondServerAsSchemaSource")
+                      .description(INFO_DESCRIPTION_ENABLE_REPLICATION_USE_SECOND_AS_SCHEMA_SOURCE.get(
+                              "--" + argParser.noSchemaReplicationArg.getLongIdentifier()))
+                      .buildArgument());
     }
   }
 
   private IntegerArgument getReplicationPortArg(
       String name, EnableReplicationServerData server, int defaultValue, Arg0 description) throws ArgumentException
   {
-    IntegerArgument replicationPort = new IntegerArgument(
-        name, 'r', name, false, false, true,
-        INFO_PORT_PLACEHOLDER.get(), defaultValue, null, description.get());
-    int value = server.getReplicationPort();
-    replicationPort.addValue(String.valueOf(value));
+    IntegerArgument replicationPort =
+            IntegerArgument.builder(name)
+                    .shortIdentifier('r')
+                    .description(description.get())
+                    .defaultValue(defaultValue)
+                    .valuePlaceholder(INFO_PORT_PLACEHOLDER.get())
+                    .buildArgument();
+    replicationPort.addValue(String.valueOf(server.getReplicationPort()));
     return replicationPort;
   }
 
   private BooleanArgument newBooleanArgument(String name, Arg0 msg) throws ArgumentException
   {
-    return new BooleanArgument(name, null, name, msg.get());
+    return BooleanArgument.builder(name)
+            .description(msg.get())
+            .buildArgument();
   }
 
   private BooleanArgument newBooleanArgument(BooleanArgument arg, Arg0 msg) throws ArgumentException
   {
-    return new BooleanArgument(arg.getName(), arg.getShortIdentifier(), arg.getLongIdentifier(), msg.get());
+    return BooleanArgument.builder(arg.getLongIdentifier())
+            .shortIdentifier(arg.getShortIdentifier())
+            .description(msg.get())
+            .buildArgument();
   }
 
   private StringArgument getBindPassword1Arg(Argument arg) throws ArgumentException
@@ -8972,34 +8974,40 @@
 
   private StringArgument getBindPasswordArg(String name, Argument arg, Arg0 bindPwdMsg) throws ArgumentException
   {
-    StringArgument bindPasswordArg = new StringArgument(
-        name, null, name, false, false, true,
-        INFO_BINDPWD_PLACEHOLDER.get(), null, null, bindPwdMsg.get());
+    StringArgument bindPasswordArg =
+            StringArgument.builder(name)
+                    .description(bindPwdMsg.get())
+                    .valuePlaceholder(INFO_BINDPWD_PLACEHOLDER.get())
+                    .buildArgument();
     bindPasswordArg.addValue(arg.getValue());
     return bindPasswordArg;
   }
 
   private FileBasedArgument getBindPasswordFile1Arg() throws ArgumentException
   {
-    return new FileBasedArgument(
-        "bindPasswordFile1", null, "bindPasswordFile1", false, false,
-        INFO_BINDPWD_FILE_PLACEHOLDER.get(), null, null,
-        INFO_DESCRIPTION_ENABLE_REPLICATION_BINDPASSWORDFILE1.get());
+    return FileBasedArgument.builder("bindPasswordFile1")
+            .description(INFO_DESCRIPTION_ENABLE_REPLICATION_BINDPASSWORDFILE1.get())
+            .valuePlaceholder(INFO_BINDPWD_FILE_PLACEHOLDER.get())
+            .buildArgument();
   }
 
   private FileBasedArgument getBindPasswordFile2Arg() throws ArgumentException
   {
-    return new FileBasedArgument(
-        "bindPasswordFile2", null, "bindPasswordFile2", false, false,
-        INFO_BINDPWD_FILE_PLACEHOLDER.get(), null, null,
-        INFO_DESCRIPTION_ENABLE_REPLICATION_BINDPASSWORDFILE2.get());
+    return FileBasedArgument.builder("bindPasswordFile2")
+            .description(INFO_DESCRIPTION_ENABLE_REPLICATION_BINDPASSWORDFILE2.get())
+            .valuePlaceholder(INFO_BINDPWD_FILE_PLACEHOLDER.get())
+            .buildArgument();
   }
 
   private StringArgument getBindDN1Arg(EnableReplicationUserData uData) throws ArgumentException
   {
-    StringArgument bindDN = new StringArgument("bindDN1", OPTION_SHORT_BINDDN, "bindDN1", false, false, true,
-        INFO_BINDDN_PLACEHOLDER.get(), "cn=Directory Manager", null,
-        INFO_DESCRIPTION_ENABLE_REPLICATION_BINDDN1.get());
+    StringArgument bindDN =
+            StringArgument.builder("bindDN1")
+                    .shortIdentifier(OPTION_SHORT_BINDDN)
+                    .description(INFO_DESCRIPTION_ENABLE_REPLICATION_BINDDN1.get())
+                    .defaultValue("cn=Directory Manager")
+                    .valuePlaceholder(INFO_BINDDN_PLACEHOLDER.get())
+                    .buildArgument();
     bindDN.addValue(uData.getServer1().getBindDn());
     return bindDN;
   }
@@ -9007,9 +9015,13 @@
   private StringArgument getBindDN2Arg(EnableReplicationUserData uData, Character shortIdentifier)
       throws ArgumentException
   {
-    StringArgument bindDN = new StringArgument("bindDN2", shortIdentifier, "bindDN2", false, false, true,
-        INFO_BINDDN_PLACEHOLDER.get(), "cn=Directory Manager", null,
-        INFO_DESCRIPTION_ENABLE_REPLICATION_BINDDN2.get());
+    StringArgument bindDN =
+            StringArgument.builder("bindDN2")
+                    .shortIdentifier(shortIdentifier)
+                    .description(INFO_DESCRIPTION_ENABLE_REPLICATION_BINDDN2.get())
+                    .defaultValue("cn=Directory Manager")
+                    .valuePlaceholder(INFO_BINDDN_PLACEHOLDER.get())
+                    .buildArgument();
     bindDN.addValue(uData.getServer2().getBindDn());
     return bindDN;
   }
@@ -9078,18 +9090,21 @@
 
   private StringArgument getAdminPasswordArg() throws ArgumentException
   {
-    return new StringArgument("adminPassword",
-        OPTION_SHORT_BINDPWD, "adminPassword", false, false, true,
-        INFO_BINDPWD_PLACEHOLDER.get(), null, null,
-        INFO_DESCRIPTION_REPLICATION_ADMIN_BINDPASSWORD.get());
+    return StringArgument.builder("adminPassword")
+            .shortIdentifier(OPTION_SHORT_BINDPWD)
+            .description(INFO_DESCRIPTION_REPLICATION_ADMIN_BINDPASSWORD.get())
+            .valuePlaceholder(INFO_BINDPWD_PLACEHOLDER.get())
+            .buildArgument();
   }
 
   private FileBasedArgument getAdminPasswordFileArg(Argument arg) throws ArgumentException
   {
-    FileBasedArgument fbArg = new FileBasedArgument(
-        "adminPasswordFile", OPTION_SHORT_BINDPWD_FILE, "adminPasswordFile", false, false,
-        INFO_BINDPWD_FILE_PLACEHOLDER.get(), null, null,
-        INFO_DESCRIPTION_REPLICATION_ADMIN_BINDPASSWORDFILE.get());
+    FileBasedArgument fbArg =
+            FileBasedArgument.builder("adminPasswordFile")
+                    .shortIdentifier(OPTION_SHORT_BINDPWD_FILE)
+                    .description(INFO_DESCRIPTION_REPLICATION_ADMIN_BINDPASSWORDFILE.get())
+                    .valuePlaceholder(INFO_BINDPWD_FILE_PLACEHOLDER.get())
+                    .buildArgument();
     fbArg.getNameToValueMap().putAll(((FileBasedArgument) arg).getNameToValueMap());
     return fbArg;
   }
@@ -9097,8 +9112,13 @@
   private IntegerArgument getPortArg(String longIdentifier, Character shortIdentifier, int value, Arg0 arg)
       throws ArgumentException
   {
-    IntegerArgument iArg = new IntegerArgument(longIdentifier, shortIdentifier, longIdentifier, false, false, true,
-        INFO_PORT_PLACEHOLDER.get(), 4444, null, arg.get());
+    IntegerArgument iArg =
+            IntegerArgument.builder(longIdentifier)
+                    .shortIdentifier(shortIdentifier)
+                    .description(arg.get())
+                    .defaultValue(4444)
+                    .valuePlaceholder(INFO_PORT_PLACEHOLDER.get())
+                    .buildArgument();
     iArg.addValue(String.valueOf(value));
     return iArg;
   }
@@ -9106,8 +9126,12 @@
   private StringArgument getHostArg(String longIdentifier, char shortIdentifier, String value,
       Arg0 description) throws ArgumentException
   {
-    StringArgument sArg = new StringArgument(longIdentifier, shortIdentifier, longIdentifier, false, false, true,
-        INFO_HOST_PLACEHOLDER.get(), null, null, description.get());
+    StringArgument sArg =
+            StringArgument.builder(longIdentifier)
+                    .shortIdentifier(shortIdentifier)
+                    .description(description.get())
+                    .valuePlaceholder(INFO_HOST_PLACEHOLDER.get())
+                    .buildArgument();
     sArg.addValue(value);
     return sArg;
   }

--
Gitblit v1.10.0