Properly handle booleans default values
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Wed, 26 Mar 2025 00:58:39 +0000 (02:58 +0200)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Wed, 26 Mar 2025 00:58:39 +0000 (02:58 +0200)
src/main/java/eu/svjatoslav/commons/cli_helper/CLIHelper.java

index b77427c..fcdd8e9 100755 (executable)
@@ -35,16 +35,15 @@ public class CLIHelper {
      */
     public static boolean askBoolean(final String prompt, final Boolean defaultValue) {
         while (true) {
-            // Show the user something like "Continue? [Y/n]: " or "Continue? [y/N]: "
 
             String finalPrompt = prompt;
             if (defaultValue != null){
+                // Show the user something like "Continue? [Y/n]: " or "Continue? [y/N]: "
                 finalPrompt = prompt + " [" + (defaultValue ? "Y/n" : "y/N") + "]: ";
             }
             String line = askString(finalPrompt);
 
-            // If user provided an empty line, askString() returns null in this usage => default
-            if (line == null && defaultValue != null) {
+            if ((defaultValue != null) && (line == null)) {
                 return defaultValue;
             }
 
@@ -250,7 +249,7 @@ public class CLIHelper {
         String input = scanner.nextLine().trim();
 
         // Return the default if user just pressed ENTER
-        return input.isEmpty() && defaultValue != null ? defaultValue : input;
+        return input.isEmpty() ? defaultValue : input;
     }
 
     /**