From ad300c48c51bed98ec639e96be3e7d170d28f7a1 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Mon, 20 Apr 2015 14:03:51 +0000
Subject: [PATCH] Code cleanup: - Used java 7 diamond operator - Compressed javadocs to a single line - Added toString() - Extracted methods

---
 opendj-cli/src/main/java/com/forgerock/opendj/cli/MenuBuilder.java |  102 ++++++++++++++++++++-------------------------------
 1 files changed, 40 insertions(+), 62 deletions(-)

diff --git a/opendj-cli/src/main/java/com/forgerock/opendj/cli/MenuBuilder.java b/opendj-cli/src/main/java/com/forgerock/opendj/cli/MenuBuilder.java
index 1941e9c..1e7ddd0 100644
--- a/opendj-cli/src/main/java/com/forgerock/opendj/cli/MenuBuilder.java
+++ b/opendj-cli/src/main/java/com/forgerock/opendj/cli/MenuBuilder.java
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2007-2008 Sun Microsystems, Inc.
- *      Portions Copyright 2014 ForgeRock AS
+ *      Portions Copyright 2014-2015 ForgeRock AS
  */
 package com.forgerock.opendj.cli;
 
@@ -73,13 +73,11 @@
             List<T> values = new ArrayList<T>();
             for (MenuCallback<T> callback : callbacks) {
                 MenuResult<T> result = callback.invoke(app);
-
                 if (!result.isSuccess()) {
                     // Throw away all the other results.
                     return result;
-                } else {
-                    values.addAll(result.getValues());
                 }
+                values.addAll(result.getValues());
             }
             return MenuResult.success(values);
         }
@@ -94,10 +92,7 @@
      */
     private static final class MenuImpl<T> implements Menu<T> {
 
-        /**
-         * Indicates whether the menu will allow selection of multiple
-         * numeric options.
-         */
+        /** Indicates whether the menu will allow selection of multiple numeric options. */
         private final boolean allowMultiSelect;
 
         /** The application console. */
@@ -111,7 +106,6 @@
 
         /** The call-back for the optional default action. */
         private final MenuCallback<T> defaultCallback;
-
         /** The description of the optional default action. */
         private final LocalizableMessage defaultDescription;
 
@@ -258,7 +252,6 @@
 
                 // Get the user's choice.
                 MenuCallback<T> choice;
-
                 if (nMaxTries != -1) {
                     choice = app.readValidatedInput(promptMsg, validator, nMaxTries);
                 } else {
@@ -268,14 +261,12 @@
                 // Invoke the user's selected choice.
                 MenuResult<T> result = choice.invoke(app);
 
-                // Determine if the help needs to be displayed, display it and
-                // start again.
+                // Determine if the help needs to be displayed, display it and start again.
                 if (!result.isAgain()) {
                     return result;
-                } else {
-                    app.println();
-                    app.println();
                 }
+                app.println();
+                app.println();
             }
         }
     }
@@ -301,15 +292,16 @@
             return result;
         }
 
+        @Override
+        public String toString() {
+            return getClass().getSimpleName() + "(result=" + result + ")";
+        }
     }
 
     /** The multiple column display threshold. */
     private int threshold = -1;
 
-    /**
-     * Indicates whether the menu will allow selection of multiple
-     * numeric options.
-     */
+    /** Indicates whether the menu will allow selection of multiple numeric options. */
     private boolean allowMultiSelect;
 
     /** The application console. */
@@ -320,31 +312,26 @@
 
     /** The char option keys (must be single-character messages). */
     private final List<LocalizableMessage> charKeys = new ArrayList<LocalizableMessage>();
-
     /** The synopsis of char options. */
     private final List<LocalizableMessage> charSynopsis = new ArrayList<LocalizableMessage>();
 
     /** Optional column headings. */
     private final List<LocalizableMessage> columnHeadings = new ArrayList<LocalizableMessage>();
-
     /** Optional column widths. */
     private final List<Integer> columnWidths = new ArrayList<Integer>();
 
     /** The call-back for the optional default action. */
     private MenuCallback<T> defaultCallback;
-
     /** The description of the optional default action. */
     private LocalizableMessage defaultDescription;
 
     /** The numeric option call-backs. */
     private final List<MenuCallback<T>> numericCallbacks = new ArrayList<MenuCallback<T>>();
-
     /** The numeric option fields. */
     private final List<List<LocalizableMessage>> numericFields = new ArrayList<List<LocalizableMessage>>();
 
     /** The menu title. */
     private LocalizableMessage title;
-
     /** The menu prompt. */
     private LocalizableMessage prompt;
 
@@ -605,24 +592,10 @@
 
         // Create optional column headers.
         if (!columnHeadings.isEmpty()) {
-            nbuilder.appendHeading();
-            for (LocalizableMessage heading : columnHeadings) {
-                if (heading != null) {
-                    nbuilder.appendHeading(heading);
-                } else {
-                    nbuilder.appendHeading();
-                }
-            }
+            appendHeadings(nbuilder);
 
             if (useMultipleColumns) {
-                nbuilder.appendHeading();
-                for (LocalizableMessage heading : columnHeadings) {
-                    if (heading != null) {
-                        nbuilder.appendHeading(heading);
-                    } else {
-                        nbuilder.appendHeading();
-                    }
-                }
+                appendHeadings(nbuilder);
             }
         }
 
@@ -642,29 +615,13 @@
 
         for (int i = 0, j = rows; i < rows; i++, j++) {
             nbuilder.startRow();
-            nbuilder.appendCell(INFO_MENU_NUMERIC_OPTION.get(i + 1));
-
-            for (LocalizableMessage field : numericFields.get(i)) {
-                if (field != null) {
-                    nbuilder.appendCell(field);
-                } else {
-                    nbuilder.appendCell();
-                }
-            }
+            appendCells(nbuilder, i);
 
             callbacks.put(String.valueOf(i + 1), numericCallbacks.get(i));
 
             // Second column.
             if (useMultipleColumns && j < sz) {
-                nbuilder.appendCell(INFO_MENU_NUMERIC_OPTION.get(j + 1));
-
-                for (LocalizableMessage field : numericFields.get(j)) {
-                    if (field != null) {
-                        nbuilder.appendCell(field);
-                    } else {
-                        nbuilder.appendCell();
-                    }
-                }
+                appendCells(nbuilder, j);
 
                 callbacks.put(String.valueOf(j + 1), numericCallbacks.get(j));
             }
@@ -686,10 +643,9 @@
         // Configure the table printer.
         TextTablePrinter printer = new TextTablePrinter(app.getErrorStream());
 
-        if (columnHeadings.isEmpty()) {
-            printer.setDisplayHeadings(false);
-        } else {
-            printer.setDisplayHeadings(true);
+        boolean hasHeadings = !columnHeadings.isEmpty();
+        printer.setDisplayHeadings(hasHeadings);
+        if (hasHeadings) {
             printer.setHeadingSeparatorStartColumn(1);
         }
 
@@ -717,6 +673,28 @@
                 defaultCallback, defaultDescription, nMaxTries);
     }
 
+    private void appendCells(TableBuilder nbuilder, int i) {
+        nbuilder.appendCell(INFO_MENU_NUMERIC_OPTION.get(i + 1));
+        for (LocalizableMessage field : numericFields.get(i)) {
+            if (field != null) {
+                nbuilder.appendCell(field);
+            } else {
+                nbuilder.appendCell();
+            }
+        }
+    }
+
+    private void appendHeadings(TableBuilder nbuilder) {
+        nbuilder.appendHeading();
+        for (LocalizableMessage heading : columnHeadings) {
+            if (heading != null) {
+                nbuilder.appendHeading(heading);
+            } else {
+                nbuilder.appendHeading();
+            }
+        }
+    }
+
     /**
      * Sets the maximum number of tries that the user can provide an invalid value in the menu. -1 for unlimited tries
      * (the default). If this limit is reached a ClientException will be thrown.

--
Gitblit v1.10.0