From db1a3826ba28aa6231756ebd224f16677440ed2e 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] OPENDJ-2701 status command using -n fails if no password is provided

---
 opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/Utils.java |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)

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 aa8c578..5d6cf7d 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
@@ -625,4 +625,37 @@
         Arrays.fill(str, charToRepeat);
         return new String(str);
     }
+
+    /**
+     * Return a {@link ValidationCallback<Integer>} which can be used to validate a port number.
+     *
+     * @param defaultPort
+     *        The default value to suggest to the user.
+     * @return a {@link ValidationCallback<Integer>} which can be used to validate a port number.
+     */
+    public static ValidationCallback<Integer> portValidationCallback(final int defaultPort) {
+        return new ValidationCallback<Integer>() {
+            @Override
+            public Integer validate(ConsoleApplication app, String rawInput) throws ClientException {
+                final String input = rawInput.trim();
+                if (input.length() == 0) {
+                    return defaultPort;
+                }
+
+                try {
+                    int i = Integer.parseInt(input);
+                    if (i < 1 || i > 65535) {
+                        throw new NumberFormatException();
+                    }
+                    return i;
+                } catch (NumberFormatException e) {
+                    // Try again...
+                    app.println();
+                    app.println(ERR_BAD_PORT_NUMBER.get(input));
+                    app.println();
+                    return null;
+                }
+            }
+        };
+    }
 }

--
Gitblit v1.10.0