This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-cli.git

commit e852acf572129fa8b2e3824b0e23a32a074e832f
Author: Gary Gregory <[email protected]>
AuthorDate: Sat Nov 8 15:08:23 2025 -0500

    Reuse constants
    
    Use forEachRemaining
---
 .../java/org/apache/commons/cli/DefaultParser.java    | 19 +++++++++++--------
 src/main/java/org/apache/commons/cli/GnuParser.java   | 12 +++++++-----
 .../java/org/apache/commons/cli/HelpFormatter.java    | 15 +++++++++------
 src/main/java/org/apache/commons/cli/OptionGroup.java |  6 ++++--
 src/main/java/org/apache/commons/cli/Parser.java      | 19 ++++++++++---------
 src/main/java/org/apache/commons/cli/PosixParser.java | 16 +++++++++-------
 src/main/java/org/apache/commons/cli/Util.java        |  6 ++++--
 .../org/apache/commons/cli/help/OptionFormatter.java  |  2 +-
 8 files changed, 55 insertions(+), 40 deletions(-)

diff --git a/src/main/java/org/apache/commons/cli/DefaultParser.java 
b/src/main/java/org/apache/commons/cli/DefaultParser.java
index 832ad565..85a209cc 100644
--- a/src/main/java/org/apache/commons/cli/DefaultParser.java
+++ b/src/main/java/org/apache/commons/cli/DefaultParser.java
@@ -25,6 +25,8 @@ import java.util.Properties;
 import java.util.function.Consumer;
 import java.util.function.Supplier;
 
+import org.apache.commons.cli.help.OptionFormatter;
+
 /**
  * Default parser.
  *
@@ -611,13 +613,13 @@ public class DefaultParser implements CommandLineParser {
             currentToken = token;
             if (skipParsing) {
                 addArg(token);
-            } else if ("--".equals(token)) {
+            } else if (OptionFormatter.DEFAULT_LONG_OPT_PREFIX.equals(token)) {
                 skipParsing = true;
             } else if (currentOption != null && currentOption.acceptsArg() && 
isArgument(token)) {
                 
currentOption.processValue(stripLeadingAndTrailingQuotesDefaultOn(token));
-            } else if (token.startsWith("--")) {
+            } else if 
(token.startsWith(OptionFormatter.DEFAULT_LONG_OPT_PREFIX)) {
                 handleLongOption(token);
-            } else if (token.startsWith("-") && !"-".equals(token)) {
+            } else if (token.startsWith(OptionFormatter.DEFAULT_OPT_PREFIX) && 
!OptionFormatter.DEFAULT_OPT_PREFIX.equals(token)) {
                 handleShortAndLongOption(token);
             } else {
                 handleUnknownToken(token);
@@ -638,10 +640,11 @@ public class DefaultParser implements CommandLineParser {
      * @since 1.10.0
      */
     protected void handleUnknownToken(final String token) throws 
ParseException {
-        if (token.startsWith("-") && token.length() > 1 && nonOptionAction == 
NonOptionAction.THROW) {
+        if (token.startsWith(OptionFormatter.DEFAULT_OPT_PREFIX) && 
token.length() > 1 && nonOptionAction == NonOptionAction.THROW) {
             throw new UnrecognizedOptionException("Unrecognized option: " + 
token, token);
         }
-        if (!token.startsWith("-") || token.equals("-") || token.length() > 1 
&& nonOptionAction != NonOptionAction.IGNORE) {
+        if (!token.startsWith(OptionFormatter.DEFAULT_OPT_PREFIX) || 
token.equals(OptionFormatter.DEFAULT_OPT_PREFIX)
+                || token.length() > 1 && nonOptionAction != 
NonOptionAction.IGNORE) {
             addArg(token);
         }
         if (nonOptionAction == NonOptionAction.STOP) {
@@ -673,7 +676,7 @@ public class DefaultParser implements CommandLineParser {
      * @param token
      */
     private boolean isLongOption(final String token) {
-        if (token == null || !token.startsWith("-") || token.length() == 1) {
+        if (token == null || 
!token.startsWith(OptionFormatter.DEFAULT_OPT_PREFIX) || token.length() == 1) {
             return false;
         }
         final int pos = indexOfEqual(token);
@@ -682,7 +685,7 @@ public class DefaultParser implements CommandLineParser {
             // long or partial long options (--L, -L, --L=V, -L=V, --l, --l=V)
             return true;
         }
-        if (getLongPrefix(token) != null && !token.startsWith("--")) {
+        if (getLongPrefix(token) != null && 
!token.startsWith(OptionFormatter.DEFAULT_LONG_OPT_PREFIX)) {
             // -LV
             return true;
         }
@@ -719,7 +722,7 @@ public class DefaultParser implements CommandLineParser {
      */
     private boolean isShortOption(final String token) {
         // short options (-S, -SV, -S=V, -SV1=V2, -S1S2)
-        if (token == null || !token.startsWith("-") || token.length() == 1) {
+        if (token == null || 
!token.startsWith(OptionFormatter.DEFAULT_OPT_PREFIX) || token.length() == 1) {
             return false;
         }
         // remove leading "-" and "=value"
diff --git a/src/main/java/org/apache/commons/cli/GnuParser.java 
b/src/main/java/org/apache/commons/cli/GnuParser.java
index d0cb949b..6d2b8715 100644
--- a/src/main/java/org/apache/commons/cli/GnuParser.java
+++ b/src/main/java/org/apache/commons/cli/GnuParser.java
@@ -20,6 +20,8 @@ package org.apache.commons.cli;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.commons.cli.help.OptionFormatter;
+
 /**
  * The class GnuParser provides an implementation of the {@link 
Parser#flatten(Options, String[], boolean) flatten}
  * method.
@@ -57,12 +59,12 @@ public class GnuParser extends Parser {
         for (int i = 0; i < arguments.length; i++) {
             final String arg = arguments[i];
             if (arg != null) {
-                if ("--".equals(arg)) {
+                if (OptionFormatter.DEFAULT_LONG_OPT_PREFIX.equals(arg)) {
                     eatTheRest = true;
-                    tokens.add("--");
-                } else if ("-".equals(arg)) {
-                    tokens.add("-");
-                } else if (arg.startsWith("-")) {
+                    tokens.add(OptionFormatter.DEFAULT_LONG_OPT_PREFIX);
+                } else if (OptionFormatter.DEFAULT_OPT_PREFIX.equals(arg)) {
+                    tokens.add(OptionFormatter.DEFAULT_OPT_PREFIX);
+                } else if (arg.startsWith(OptionFormatter.DEFAULT_OPT_PREFIX)) 
{
                     final String opt = Util.stripLeadingHyphens(arg);
                     if (options.hasOption(opt)) {
                         tokens.add(arg);
diff --git a/src/main/java/org/apache/commons/cli/HelpFormatter.java 
b/src/main/java/org/apache/commons/cli/HelpFormatter.java
index f3456dc9..fb9da62e 100644
--- a/src/main/java/org/apache/commons/cli/HelpFormatter.java
+++ b/src/main/java/org/apache/commons/cli/HelpFormatter.java
@@ -34,6 +34,9 @@ import java.util.Objects;
 import java.util.function.Function;
 import java.util.function.Supplier;
 
+import org.apache.commons.cli.help.AbstractHelpFormatter;
+import org.apache.commons.cli.help.OptionFormatter;
+
 /**
  * A formatter of help messages for command line options.
  * <p>
@@ -198,10 +201,10 @@ public class HelpFormatter {
     public static final String DEFAULT_SYNTAX_PREFIX = "usage: ";
 
     /** Default prefix for shortOpts */
-    public static final String DEFAULT_OPT_PREFIX = "-";
+    public static final String DEFAULT_OPT_PREFIX = 
OptionFormatter.DEFAULT_OPT_PREFIX;
 
     /** Default prefix for long Option */
-    public static final String DEFAULT_LONG_OPT_PREFIX = "--";
+    public static final String DEFAULT_LONG_OPT_PREFIX = 
OptionFormatter.DEFAULT_LONG_OPT_PREFIX;
 
     /**
      * Default separator displayed between a long Option and its value
@@ -358,9 +361,9 @@ public class HelpFormatter {
             buff.append("[");
         }
         if (option.getOpt() != null) {
-            buff.append("-").append(option.getOpt());
+            
buff.append(OptionFormatter.DEFAULT_OPT_PREFIX).append(option.getOpt());
         } else {
-            buff.append("--").append(option.getLongOpt());
+            
buff.append(OptionFormatter.DEFAULT_LONG_OPT_PREFIX).append(option.getLongOpt());
         }
         // if the Option has a value and a non blank argname
         if (option.hasArg() && (option.getArgName() == null || 
!option.getArgName().isEmpty())) {
@@ -394,7 +397,7 @@ public class HelpFormatter {
             // whether the option is required or not is handled at group level
             appendOption(buff, it.next(), true);
             if (it.hasNext()) {
-                buff.append(" | ");
+                
buff.append(AbstractHelpFormatter.DEFAULT_OPTION_GROUP_SEPARATOR);
             }
         }
         if (!optionGroup.isRequired()) {
@@ -467,7 +470,7 @@ public class HelpFormatter {
             if (optBuf.length() < max) {
                 optBuf.append(createPadding(max - maxSince - optBuf.length()));
                 if (showSince) {
-                    optBuf.append(lpad).append(option.getSince() == null ? "-" 
: option.getSince());
+                    optBuf.append(lpad).append(option.getSince() == null ? 
OptionFormatter.DEFAULT_OPT_PREFIX : option.getSince());
                 }
                 optBuf.append(createPadding(max - optBuf.length()));
             }
diff --git a/src/main/java/org/apache/commons/cli/OptionGroup.java 
b/src/main/java/org/apache/commons/cli/OptionGroup.java
index 19e6825f..895cba7f 100644
--- a/src/main/java/org/apache/commons/cli/OptionGroup.java
+++ b/src/main/java/org/apache/commons/cli/OptionGroup.java
@@ -23,6 +23,8 @@ import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
+import org.apache.commons.cli.help.OptionFormatter;
+
 /**
  * A group of mutually exclusive options.
  */
@@ -154,10 +156,10 @@ public class OptionGroup implements Serializable {
         while (iter.hasNext()) {
             final Option option = iter.next();
             if (option.getOpt() != null) {
-                buff.append("-");
+                buff.append(OptionFormatter.DEFAULT_OPT_PREFIX);
                 buff.append(option.getOpt());
             } else {
-                buff.append("--");
+                buff.append(OptionFormatter.DEFAULT_LONG_OPT_PREFIX);
                 buff.append(option.getLongOpt());
             }
 
diff --git a/src/main/java/org/apache/commons/cli/Parser.java 
b/src/main/java/org/apache/commons/cli/Parser.java
index a1dbc1d8..96cd34ea 100644
--- a/src/main/java/org/apache/commons/cli/Parser.java
+++ b/src/main/java/org/apache/commons/cli/Parser.java
@@ -24,6 +24,8 @@ import java.util.List;
 import java.util.ListIterator;
 import java.util.Properties;
 
+import org.apache.commons.cli.help.OptionFormatter;
+
 /**
  * Creates {@link CommandLine} instances.
  *
@@ -157,23 +159,23 @@ public abstract class Parser implements CommandLineParser 
{
         setOptions(options);
         cmd = CommandLine.builder().get();
         boolean eatTheRest = false;
-        final List<String> tokenList = Arrays.asList(flatten(getOptions(), 
arguments == null ? new String[0] : arguments, stopAtNonOption));
+        final List<String> tokenList = Arrays.asList(flatten(getOptions(), 
arguments == null ? Util.EMPTY_STRING_ARRAY : arguments, stopAtNonOption));
         final ListIterator<String> iterator = tokenList.listIterator();
         // process each flattened token
         while (iterator.hasNext()) {
             final String token = iterator.next();
             if (token != null) {
                 // the value is the double-dash
-                if ("--".equals(token)) {
+                if (OptionFormatter.DEFAULT_LONG_OPT_PREFIX.equals(token)) {
                     eatTheRest = true;
-                } else if ("-".equals(token)) {
+                } else if (OptionFormatter.DEFAULT_OPT_PREFIX.equals(token)) {
                     // the value is a single dash
                     if (stopAtNonOption) {
                         eatTheRest = true;
                     } else {
                         cmd.addArg(token);
                     }
-                } else if (token.startsWith("-")) {
+                } else if 
(token.startsWith(OptionFormatter.DEFAULT_OPT_PREFIX)) {
                     // the value is an option
                     if (stopAtNonOption && !getOptions().hasOption(token)) {
                         eatTheRest = true;
@@ -190,13 +192,12 @@ public abstract class Parser implements CommandLineParser 
{
                 }
                 // eat the remaining tokens
                 if (eatTheRest) {
-                    while (iterator.hasNext()) {
-                        final String str = iterator.next();
+                    iterator.forEachRemaining(str -> {
                         // ensure only one double-dash is added
-                        if (!"--".equals(str)) {
+                        if 
(!OptionFormatter.DEFAULT_LONG_OPT_PREFIX.equals(str)) {
                             cmd.addArg(str);
                         }
-                    }
+                    });
                 }
             }
         }
@@ -218,7 +219,7 @@ public abstract class Parser implements CommandLineParser {
         while (iter.hasNext()) {
             final String str = iter.next();
             // found an Option, not an argument
-            if (getOptions().hasOption(str) && str.startsWith("-")) {
+            if (getOptions().hasOption(str) && 
str.startsWith(OptionFormatter.DEFAULT_OPT_PREFIX)) {
                 iter.previous();
                 break;
             }
diff --git a/src/main/java/org/apache/commons/cli/PosixParser.java 
b/src/main/java/org/apache/commons/cli/PosixParser.java
index f6f236f9..f9adc354 100644
--- a/src/main/java/org/apache/commons/cli/PosixParser.java
+++ b/src/main/java/org/apache/commons/cli/PosixParser.java
@@ -22,6 +22,8 @@ import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
 
+import org.apache.commons.cli.help.OptionFormatter;
+
 /**
  * The class PosixParser provides an implementation of the {@link 
Parser#flatten(Options,String[],boolean) flatten}
  * method.
@@ -81,7 +83,7 @@ public class PosixParser extends Parser {
                 }
                 break;
             }
-            tokens.add("-" + ch);
+            tokens.add(OptionFormatter.DEFAULT_OPT_PREFIX + ch);
             currentOption = options.getOption(ch);
             if (currentOption.hasArg() && token.length() != i + 1) {
                 tokens.add(token.substring(i + 1));
@@ -132,9 +134,9 @@ public class PosixParser extends Parser {
             final String token = iter.next();
             if (token != null) {
                 // single or double hyphen
-                if ("-".equals(token) || "--".equals(token)) {
+                if (OptionFormatter.DEFAULT_OPT_PREFIX.equals(token) || 
OptionFormatter.DEFAULT_LONG_OPT_PREFIX.equals(token)) {
                     tokens.add(token);
-                } else if (token.startsWith("--")) {
+                } else if 
(token.startsWith(OptionFormatter.DEFAULT_LONG_OPT_PREFIX)) {
                     // handle long option --foo or --foo=bar
                     final int pos = DefaultParser.indexOfEqual(token);
                     final String opt = pos == -1 ? token : token.substring(0, 
pos); // --foo
@@ -145,12 +147,12 @@ public class PosixParser extends Parser {
                         throw new AmbiguousOptionException(opt, matchingOpts);
                     } else {
                         currentOption = options.getOption(matchingOpts.get(0));
-                        tokens.add("--" + currentOption.getLongOpt());
+                        tokens.add(OptionFormatter.DEFAULT_LONG_OPT_PREFIX + 
currentOption.getLongOpt());
                         if (pos != -1) {
                             tokens.add(token.substring(pos + 1));
                         }
                     }
-                } else if (token.startsWith("-")) {
+                } else if 
(token.startsWith(OptionFormatter.DEFAULT_OPT_PREFIX)) {
                     if (token.length() == 2 || options.hasOption(token)) {
                         processOptionToken(token, stopAtNonOption);
                     } else if (!options.getMatchingOptions(token).isEmpty()) {
@@ -159,7 +161,7 @@ public class PosixParser extends Parser {
                             throw new AmbiguousOptionException(token, 
matchingOpts);
                         }
                         final Option opt = 
options.getOption(matchingOpts.get(0));
-                        processOptionToken("-" + opt.getLongOpt(), 
stopAtNonOption);
+                        processOptionToken(OptionFormatter.DEFAULT_OPT_PREFIX 
+ opt.getLongOpt(), stopAtNonOption);
                     }
                     // requires bursting
                     else {
@@ -205,7 +207,7 @@ public class PosixParser extends Parser {
     private void processNonOptionToken(final String value, final boolean 
stopAtNonOption) {
         if (stopAtNonOption && (currentOption == null || 
!currentOption.hasArg())) {
             eatTheRest = true;
-            tokens.add("--");
+            tokens.add(OptionFormatter.DEFAULT_LONG_OPT_PREFIX);
         }
         tokens.add(value);
     }
diff --git a/src/main/java/org/apache/commons/cli/Util.java 
b/src/main/java/org/apache/commons/cli/Util.java
index 85b3fab5..cca7369f 100644
--- a/src/main/java/org/apache/commons/cli/Util.java
+++ b/src/main/java/org/apache/commons/cli/Util.java
@@ -17,6 +17,8 @@
 
 package org.apache.commons.cli;
 
+import org.apache.commons.cli.help.OptionFormatter;
+
 /**
  * Contains useful helper methods for classes within this package.
  */
@@ -74,10 +76,10 @@ final class Util {
         if (isEmpty(str)) {
             return str;
         }
-        if (str.startsWith("--")) {
+        if (str.startsWith(OptionFormatter.DEFAULT_LONG_OPT_PREFIX)) {
             return str.substring(2);
         }
-        if (str.startsWith("-")) {
+        if (str.startsWith(OptionFormatter.DEFAULT_OPT_PREFIX)) {
             return str.substring(1);
         }
         return str;
diff --git a/src/main/java/org/apache/commons/cli/help/OptionFormatter.java 
b/src/main/java/org/apache/commons/cli/help/OptionFormatter.java
index 69577654..54e292ff 100644
--- a/src/main/java/org/apache/commons/cli/help/OptionFormatter.java
+++ b/src/main/java/org/apache/commons/cli/help/OptionFormatter.java
@@ -434,7 +434,7 @@ public final class OptionFormatter {
      * @return The since valeu from the option or "--" if no since value was 
set.
      */
     public String getSince() {
-        return Util.defaultValue(option.getSince(), "--");
+        return Util.defaultValue(option.getSince(), DEFAULT_LONG_OPT_PREFIX);
     }
 
     /**

Reply via email to