From 85eed99dc29d3d7c557db102eea9d0441a9c665c Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Wed, 23 Jul 2014 14:40:02 +0000
Subject: [PATCH] OPENDJ-1074 (CR-4030) Implement combined add/del rate tool Adding an add/del rate tool named addrate. -opendj-core     ** EntryGenerator.java:     * Changing the subtemplate parsing behavior, add the "generated branches" options     ** TemplateFile.java     * Adding the "generated branches" options     ** addrate.template     * New template used to generate entries

---
 opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/MakeLDIF.java |   45 ++++++++++++++++++++++++++++++---------------
 1 files changed, 30 insertions(+), 15 deletions(-)

diff --git a/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/MakeLDIF.java b/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/MakeLDIF.java
index 66fccf2..c5b98e3 100644
--- a/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/MakeLDIF.java
+++ b/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/MakeLDIF.java
@@ -55,6 +55,16 @@
  */
 public final class MakeLDIF extends ConsoleApplication {
 
+    /**
+     * The value for the constant option in LDIF generator tools.
+     */
+    public static final String OPTION_LONG_CONSTANT = "constant";
+
+    /**
+     * The value for the path to look for LDIF resources (e.g data files).
+     */
+    public static final String OPTION_LONG_RESOURCE_PATH = "resourcePath";
+
     private static final int EXIT_CODE_SUCCESS = 0;
     private static final int EXIT_CODE_FAILURE = 1;
 
@@ -84,7 +94,7 @@
         StringArgument resourcePath;
         StringArgument constants;
         try {
-            resourcePath = new StringArgument("resourcepath", 'r', "resourcePath", false, false, true,
+            resourcePath = new StringArgument("resourcepath", 'r', OPTION_LONG_RESOURCE_PATH, false, false, true,
                     INFO_PATH_PLACEHOLDER.get(), null, null, INFO_MAKELDIF_DESCRIPTION_RESOURCE_PATH.get());
             argParser.addArgument(resourcePath);
 
@@ -97,7 +107,7 @@
                     false, true, INFO_SEED_PLACEHOLDER.get(), 0, null, INFO_MAKELDIF_DESCRIPTION_SEED.get());
             argParser.addArgument(randomSeed);
 
-            constants = new StringArgument("constant", 'c', "constant", false, true, true,
+            constants = new StringArgument("constant", 'c', OPTION_LONG_CONSTANT, false, true, true,
                     INFO_CONSTANT_PLACEHOLDER.get(),
                     null, null, INFO_MAKELDIF_DESCRIPTION_CONSTANT.get());
             argParser.addArgument(constants);
@@ -168,17 +178,15 @@
         return EXIT_CODE_SUCCESS;
     }
 
-    /**
-     * Returns the initialized generator, or null if a problem occurs.
-     */
-    private EntryGenerator createGenerator(final String templatePath, final StringArgument resourcePath,
-            final IntegerArgument randomSeedArg, final StringArgument constants) {
-        final EntryGenerator generator = new EntryGenerator(templatePath);
+    static EntryGenerator createGenerator(final String templatePath, final StringArgument resourcePath,
+                                            final IntegerArgument randomSeedArg, final StringArgument constants,
+                                            final boolean generateBranches, final ConsoleApplication app) {
+        final EntryGenerator generator = new EntryGenerator(templatePath).setGenerateBranches(generateBranches);
 
         if (resourcePath.isPresent()) {
             final File resourceDir = new File(resourcePath.getValue());
             if (!resourceDir.exists()) {
-                errPrintln(ERR_MAKELDIF_NO_SUCH_RESOURCE_DIRECTORY.get(resourcePath.getValue()));
+                app.errPrintln(ERR_LDIF_GEN_TOOL_NO_SUCH_RESOURCE_DIRECTORY.get(resourcePath.getValue()));
                 generator.close();
                 return null;
             }
@@ -189,14 +197,14 @@
             try {
                 generator.setRandomSeed(randomSeedArg.getIntValue());
             } catch (ArgumentException ae) {
-                errPrintln(ERR_ERROR_PARSING_ARGS.get(ae.getMessage()));
+                app.errPrintln(ERR_ERROR_PARSING_ARGS.get(ae.getMessage()));
                 generator.close();
                 return null;
             }
         }
 
         if (constants.isPresent()) {
-            if (!addConstantsToGenerator(constants, generator)) {
+            if (!addConstantsToGenerator(constants, generator, app)) {
                 generator.close();
                 return null;
             }
@@ -206,7 +214,7 @@
         try {
             generator.hasNext();
         } catch (IOException e) {
-            errPrintln(ERR_MAKELDIF_EXCEPTION_DURING_PARSE.get(e.getMessage()));
+            app.errPrintln(ERR_LDIF_GEN_TOOL_EXCEPTION_DURING_PARSE.get(e.getMessage()));
             generator.close();
             return null;
         }
@@ -217,11 +225,12 @@
     /**
      * Returns true if all constants are added to generator, false otherwise.
      */
-    private boolean addConstantsToGenerator(StringArgument constants, EntryGenerator generator) {
+    private static boolean addConstantsToGenerator(StringArgument constants, EntryGenerator generator,
+                                                       final ConsoleApplication app) {
         for (final String constant : constants.getValues()) {
             final String[] chunks = constant.split("=");
             if (chunks.length != 2) {
-                errPrintln(ERR_CONSTANT_ARG_CANNOT_DECODE.get(constant));
+                app.errPrintln(ERR_CONSTANT_ARG_CANNOT_DECODE.get(constant));
                 return false;
             }
             generator.setConstant(chunks[0], chunks[1]);
@@ -229,8 +238,14 @@
         return true;
     }
 
+
+    private EntryGenerator createGenerator(final String templatePath, final StringArgument resourcePath,
+            final IntegerArgument randomSeedArg, final StringArgument constants) {
+        return createGenerator(templatePath, resourcePath, randomSeedArg, constants, true, this);
+    }
+
     /**
-     * Returns true if generation is successfull, false otherwise.
+     * Returns true if generation is successful, false otherwise.
      */
     private boolean generateEntries(final EntryGenerator generator, final LDIFEntryWriter writer,
             final StringArgument ldifFile) {

--
Gitblit v1.10.0