From 74bb4ece11359af6bbb18da48a6b1af584eacd72 Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Wed, 08 Apr 2015 14:42:49 +0000
Subject: [PATCH] OPENDJ-1714 Code cleanup

---
 opendj-sdk/opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/Installer.java |  258 ++++++++++++++++++++++++++-------------------------
 1 files changed, 130 insertions(+), 128 deletions(-)

diff --git a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/Installer.java b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/Installer.java
index db39b0d..7cede49 100644
--- a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/Installer.java
+++ b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/Installer.java
@@ -3735,134 +3735,16 @@
    * Validate the data provided by the user in the new suffix data options panel
    * and update the UserInstallData object according to that content.
    *
-   * @throws UserDataException if the data provided by the user is not
-   *           valid.
+   * @throws UserDataException
+   *           if the data provided by the user is not valid.
    */
-  private void updateUserDataForNewSuffixOptionsPanel(QuickSetup qs)
-      throws UserDataException
+  private void updateUserDataForNewSuffixOptionsPanel(final QuickSetup ui) throws UserDataException
   {
-    List<LocalizableMessage> errorMsgs = new ArrayList<LocalizableMessage>();
-
-    NewSuffixOptions dataOptions = null;
-
-    // Check the base dn
-    boolean validBaseDn = false;
-    String baseDn = qs.getFieldStringValue(FieldName.DIRECTORY_BASE_DN);
-    if (baseDn == null || baseDn.trim().length() == 0)
-    {
-      // Do nothing, the user does not want to provide a base DN.
-      baseDn = "";
-    } else if (!isDN(baseDn))
-    {
-      errorMsgs.add(INFO_NOT_A_BASE_DN.get());
-      qs.displayFieldInvalid(FieldName.DIRECTORY_BASE_DN, true);
-    } else if (isConfigurationDn(baseDn))
-    {
-      errorMsgs.add(INFO_BASE_DN_IS_CONFIGURATION_DN.get());
-      qs.displayFieldInvalid(FieldName.DIRECTORY_BASE_DN, true);
-    } else
-    {
-      qs.displayFieldInvalid(FieldName.DIRECTORY_BASE_DN, false);
-      validBaseDn = true;
-    }
-
-    if ("".equals(baseDn))
-    {
-      List<String> baseDns = new LinkedList<String>();
-      dataOptions = NewSuffixOptions.createEmpty(baseDns);
-    }
-    else
-    {
-      // Check the data options
-      NewSuffixOptions.Type type =
-        (NewSuffixOptions.Type) qs.getFieldValue(FieldName.DATA_OPTIONS);
-
-      switch (type)
-      {
-      case IMPORT_FROM_LDIF_FILE:
-        String ldifPath = qs.getFieldStringValue(FieldName.LDIF_PATH);
-        if (ldifPath == null || "".equals(ldifPath.trim()))
-        {
-          errorMsgs.add(INFO_NO_LDIF_PATH.get());
-          qs.displayFieldInvalid(FieldName.LDIF_PATH, true);
-        } else if (!fileExists(ldifPath))
-        {
-          errorMsgs.add(INFO_LDIF_FILE_DOES_NOT_EXIST.get());
-          qs.displayFieldInvalid(FieldName.LDIF_PATH, true);
-        } else if (validBaseDn)
-        {
-          LinkedList<String> baseDns = new LinkedList<String>();
-          baseDns.add(baseDn);
-          LinkedList<String> ldifPaths = new LinkedList<String>();
-          ldifPaths.add(ldifPath);
-
-          dataOptions = NewSuffixOptions.createImportFromLDIF(
-              baseDns, ldifPaths, null, null);
-          qs.displayFieldInvalid(FieldName.LDIF_PATH, false);
-        }
-        break;
-
-      case IMPORT_AUTOMATICALLY_GENERATED_DATA:
-        // variable used to know if everything went ok during these
-        // checks
-        int startErrors = errorMsgs.size();
-
-        // Check the number of entries
-        String nEntries = qs.getFieldStringValue(FieldName.NUMBER_ENTRIES);
-        if (nEntries == null || "".equals(nEntries.trim()))
-        {
-          errorMsgs.add(INFO_NO_NUMBER_ENTRIES.get());
-          qs.displayFieldInvalid(FieldName.NUMBER_ENTRIES, true);
-        } else
-        {
-          boolean nEntriesValid = false;
-          try
-          {
-            int n = Integer.parseInt(nEntries);
-
-            nEntriesValid = n >= MIN_NUMBER_ENTRIES && n <= MAX_NUMBER_ENTRIES;
-          } catch (NumberFormatException nfe)
-          { /* do nothing */
-          }
-
-          if (!nEntriesValid)
-          {
-            errorMsgs.add(INFO_INVALID_NUMBER_ENTRIES_RANGE.get(
-                MIN_NUMBER_ENTRIES, MAX_NUMBER_ENTRIES));
-            qs.displayFieldInvalid(FieldName.NUMBER_ENTRIES, true);
-          } else
-          {
-            qs.displayFieldInvalid(FieldName.NUMBER_ENTRIES, false);
-          }
-        }
-        if (startErrors == errorMsgs.size() && validBaseDn)
-        {
-          // No validation errors
-          LinkedList<String> baseDns = new LinkedList<String>();
-          baseDns.add(baseDn);
-          dataOptions = NewSuffixOptions.createAutomaticallyGenerated(baseDns,
-              Integer.parseInt(nEntries));
-        }
-        break;
-
-      default:
-        qs.displayFieldInvalid(FieldName.LDIF_PATH, false);
-        qs.displayFieldInvalid(FieldName.NUMBER_ENTRIES, false);
-        if (validBaseDn)
-        {
-          LinkedList<String> baseDns = new LinkedList<String>();
-          baseDns.add(baseDn);
-          if (type == NewSuffixOptions.Type.CREATE_BASE_ENTRY)
-          {
-            dataOptions = NewSuffixOptions.createBaseEntry(baseDns);
-          }
-          else
-          {
-            dataOptions = NewSuffixOptions.createEmpty(baseDns);
-          }
-        }
-      }
-    }
+    final List<LocalizableMessage> errorMsgs = new ArrayList<LocalizableMessage>();
+    // Singleton list with the provided baseDN (if exists and valid)
+    List<String> baseDn = new LinkedList<String>();
+    boolean validBaseDn = checkProvidedBaseDn(ui, baseDn, errorMsgs);
+    final NewSuffixOptions dataOptions = checkImportData(ui, baseDn, validBaseDn, errorMsgs);
 
     if (dataOptions != null)
     {
@@ -3871,11 +3753,131 @@
 
     if (errorMsgs.size() > 0)
     {
-      throw new UserDataException(Step.NEW_SUFFIX_OPTIONS,
-          getMessageFromCollection(errorMsgs, "\n"));
+      throw new UserDataException(
+          Step.NEW_SUFFIX_OPTIONS, getMessageFromCollection(errorMsgs, Constants.LINE_SEPARATOR));
     }
   }
 
+  private NewSuffixOptions checkImportData(final QuickSetup ui, final List<String> baseDn,
+      final boolean validBaseDn, final List<LocalizableMessage> errorMsgs)
+  {
+    if (baseDn.isEmpty())
+    {
+      return NewSuffixOptions.createEmpty(baseDn);
+    }
+
+    final NewSuffixOptions.Type type = (NewSuffixOptions.Type) ui.getFieldValue(FieldName.DATA_OPTIONS);
+    switch (type)
+    {
+    case IMPORT_FROM_LDIF_FILE:
+      return checkImportLDIFFile(ui, baseDn, validBaseDn, errorMsgs);
+
+    case IMPORT_AUTOMATICALLY_GENERATED_DATA:
+      return checkImportGeneratedData(ui, baseDn, validBaseDn, errorMsgs);
+
+    default:
+      if (validBaseDn)
+      {
+        return type == NewSuffixOptions.Type.CREATE_BASE_ENTRY ? NewSuffixOptions.createBaseEntry(baseDn)
+                                                               : NewSuffixOptions.createEmpty(baseDn);
+      }
+    }
+
+    return null;
+  }
+
+  private NewSuffixOptions checkImportGeneratedData(final QuickSetup ui, final List<String> baseDn,
+      final boolean validBaseDn, final List<LocalizableMessage> errorMsgs)
+  {
+    boolean fieldIsValid = true;
+    final List<LocalizableMessage> localErrorMsgs = new LinkedList<LocalizableMessage>();
+    final String nEntries = ui.getFieldStringValue(FieldName.NUMBER_ENTRIES);
+    if (nEntries == null || "".equals(nEntries.trim()))
+    {
+      localErrorMsgs.add(INFO_NO_NUMBER_ENTRIES.get());
+      fieldIsValid = false;
+    }
+    else
+    {
+      boolean nEntriesValid = false;
+      try
+      {
+        int n = Integer.parseInt(nEntries);
+        nEntriesValid = n >= MIN_NUMBER_ENTRIES && n <= MAX_NUMBER_ENTRIES;
+      }
+      catch (NumberFormatException nfe)
+      {
+        /* do nothing */
+      }
+
+      if (!nEntriesValid)
+      {
+        localErrorMsgs.add(INFO_INVALID_NUMBER_ENTRIES_RANGE.get(MIN_NUMBER_ENTRIES, MAX_NUMBER_ENTRIES));
+        fieldIsValid = false;
+      }
+    }
+
+    ui.displayFieldInvalid(FieldName.NUMBER_ENTRIES, !fieldIsValid);
+    if (validBaseDn && localErrorMsgs.isEmpty())
+    {
+      return NewSuffixOptions.createAutomaticallyGenerated(baseDn, Integer.parseInt(nEntries));
+    }
+    errorMsgs.addAll(localErrorMsgs);
+
+    return null;
+  }
+
+  private NewSuffixOptions checkImportLDIFFile(final QuickSetup ui, final List<String> baseDn,
+      final boolean validBaseDn, final List<LocalizableMessage> errorMsgs)
+  {
+    final boolean fieldIsValid = false;
+    final String ldifPath = ui.getFieldStringValue(FieldName.LDIF_PATH);
+    if (ldifPath == null || "".equals(ldifPath.trim()))
+    {
+      errorMsgs.add(INFO_NO_LDIF_PATH.get());
+    }
+    else if (!fileExists(ldifPath))
+    {
+      errorMsgs.add(INFO_LDIF_FILE_DOES_NOT_EXIST.get());
+    }
+    else if (validBaseDn)
+    {
+      return NewSuffixOptions.createImportFromLDIF(baseDn, Collections.singletonList(ldifPath), null, null);
+    }
+    ui.displayFieldInvalid(FieldName.LDIF_PATH, !fieldIsValid);
+
+    return null;
+  }
+
+
+  private boolean checkProvidedBaseDn(
+      final QuickSetup ui, final List<String> baseDn, final List<LocalizableMessage> errorMsgs)
+  {
+    boolean validBaseDn = true;
+    String dn = ui.getFieldStringValue(FieldName.DIRECTORY_BASE_DN);
+    if (dn == null || dn.trim().length() == 0)
+    {
+      // Do nothing, the user does not want to provide a base DN.
+      dn = "";
+    }
+    else if (!isDN(dn))
+    {
+      validBaseDn = false;
+      errorMsgs.add(INFO_NOT_A_BASE_DN.get());
+    }
+    else if (isConfigurationDn(dn))
+    {
+      validBaseDn = false;
+      errorMsgs.add(INFO_BASE_DN_IS_CONFIGURATION_DN.get());
+    }
+    else
+    {
+      baseDn.add(dn);
+    }
+    ui.displayFieldInvalid(FieldName.DIRECTORY_BASE_DN, !validBaseDn);
+
+    return validBaseDn;
+  }
 
   /** Update the userData object according to the content of the runtime options panel. */
   private void updateUserDataForRuntimeOptionsPanel(QuickSetup qs)

--
Gitblit v1.10.0