You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2024/01/06 15:49:15 UTC
(commons-cli) branch master updated: Add FinalParameters
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
The following commit(s) were added to refs/heads/master by this push:
new 5db0035 Add FinalParameters
5db0035 is described below
commit 5db0035d27cce3d8ffa630d5b9186e1bd0a9cd0f
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sat Jan 6 10:49:05 2024 -0500
Add FinalParameters
---
src/conf/checkstyle.xml | 1 +
.../java/org/apache/commons/cli/DefaultParser.java | 12 +++---
.../java/org/apache/commons/cli/HelpFormatter.java | 26 ++++++------
src/main/java/org/apache/commons/cli/Option.java | 13 +++---
src/main/java/org/apache/commons/cli/Options.java | 46 +++++++++-------------
src/main/java/org/apache/commons/cli/Parser.java | 9 ++---
src/main/java/org/apache/commons/cli/Util.java | 6 +--
7 files changed, 51 insertions(+), 62 deletions(-)
diff --git a/src/conf/checkstyle.xml b/src/conf/checkstyle.xml
index 00f5e14..41cd921 100644
--- a/src/conf/checkstyle.xml
+++ b/src/conf/checkstyle.xml
@@ -45,6 +45,7 @@
<!-- Checks for Naming Conventions. -->
<!-- See http://checkstyle.sf.net/config_naming.html -->
<module name="ConstantName" />
+ <module name="FinalParameters"/>
<module name="LocalFinalVariableName" />
<module name="LocalVariableName" />
<module name="MemberName" />
diff --git a/src/main/java/org/apache/commons/cli/DefaultParser.java b/src/main/java/org/apache/commons/cli/DefaultParser.java
index 8a02709..0ec390d 100644
--- a/src/main/java/org/apache/commons/cli/DefaultParser.java
+++ b/src/main/java/org/apache/commons/cli/DefaultParser.java
@@ -389,18 +389,18 @@ public class DefaultParser implements CommandLineParser {
}
}
- private void handleOption(Option option) throws ParseException {
+ private void handleOption(final Option option) throws ParseException {
// check the previous option before handling the next one
checkRequiredArgs();
- option = (Option) option.clone();
+ final Option copy = (Option) option.clone();
- updateRequiredOptions(option);
+ updateRequiredOptions(copy);
- cmd.addOption(option);
+ cmd.addOption(copy);
- if (option.hasArg()) {
- currentOption = option;
+ if (copy.hasArg()) {
+ currentOption = copy;
} else {
currentOption = null;
}
diff --git a/src/main/java/org/apache/commons/cli/HelpFormatter.java b/src/main/java/org/apache/commons/cli/HelpFormatter.java
index 0bf245e..fba4032 100644
--- a/src/main/java/org/apache/commons/cli/HelpFormatter.java
+++ b/src/main/java/org/apache/commons/cli/HelpFormatter.java
@@ -749,39 +749,41 @@ public class HelpFormatter {
*
* @return the StringBuffer with the rendered Options contents.
*/
- protected StringBuffer renderWrappedText(final StringBuffer sb, final int width, int nextLineTabStop, String text) {
- int pos = findWrapPos(text, width, 0);
+ protected StringBuffer renderWrappedText(final StringBuffer sb, final int width, final int nextLineTabStop, final String text) {
+ String render = text;
+ int nextLineTabStopPos = nextLineTabStop;
+ int pos = findWrapPos(render, width, 0);
if (pos == -1) {
- sb.append(rtrim(text));
+ sb.append(rtrim(render));
return sb;
}
- sb.append(rtrim(text.substring(0, pos))).append(getNewLine());
+ sb.append(rtrim(render.substring(0, pos))).append(getNewLine());
- if (nextLineTabStop >= width) {
+ if (nextLineTabStopPos >= width) {
// stops infinite loop happening
- nextLineTabStop = 1;
+ nextLineTabStopPos = 1;
}
// all following lines must be padded with nextLineTabStop space characters
- final String padding = createPadding(nextLineTabStop);
+ final String padding = createPadding(nextLineTabStopPos);
while (true) {
- text = padding + text.substring(pos).trim();
- pos = findWrapPos(text, width, 0);
+ render = padding + render.substring(pos).trim();
+ pos = findWrapPos(render, width, 0);
if (pos == -1) {
- sb.append(text);
+ sb.append(render);
return sb;
}
- if (text.length() > width && pos == nextLineTabStop - 1) {
+ if (render.length() > width && pos == nextLineTabStopPos - 1) {
pos = width;
}
- sb.append(rtrim(text.substring(0, pos))).append(getNewLine());
+ sb.append(rtrim(render.substring(0, pos))).append(getNewLine());
}
}
diff --git a/src/main/java/org/apache/commons/cli/Option.java b/src/main/java/org/apache/commons/cli/Option.java
index 7834fc8..dd2623d 100644
--- a/src/main/java/org/apache/commons/cli/Option.java
+++ b/src/main/java/org/apache/commons/cli/Option.java
@@ -729,14 +729,15 @@ public class Option implements Cloneable, Serializable {
*
* @since 1.0.1
*/
- private void processValue(String value) {
+ private void processValue(final String value) {
+ String add = value;
// this Option has a separator character
if (hasValueSeparator()) {
// get the separator character
final char sep = getValueSeparator();
// store the index for the value separator
- int index = value.indexOf(sep);
+ int index = add.indexOf(sep);
// while there are more value separators
while (index != -1) {
@@ -746,18 +747,18 @@ public class Option implements Cloneable, Serializable {
}
// store
- add(value.substring(0, index));
+ add(add.substring(0, index));
// parse
- value = value.substring(index + 1);
+ add = add.substring(index + 1);
// get new index
- index = value.indexOf(sep);
+ index = add.indexOf(sep);
}
}
// store the actual value or the last value that has been parsed
- add(value);
+ add(add);
}
/**
diff --git a/src/main/java/org/apache/commons/cli/Options.java b/src/main/java/org/apache/commons/cli/Options.java
index 63fa86b..e9a6ad7 100644
--- a/src/main/java/org/apache/commons/cli/Options.java
+++ b/src/main/java/org/apache/commons/cli/Options.java
@@ -193,22 +193,18 @@ public class Options implements Serializable {
* @return the options matching the partial name specified, or an empty list if none matches
* @since 1.3
*/
- public List<String> getMatchingOptions(String opt) {
- opt = Util.stripLeadingHyphens(opt);
-
+ public List<String> getMatchingOptions(final String opt) {
+ final String clean = Util.stripLeadingHyphens(opt);
final List<String> matchingOpts = new ArrayList<>();
-
// for a perfect match return the single option only
- if (longOpts.containsKey(opt)) {
- return Collections.singletonList(opt);
+ if (longOpts.containsKey(clean)) {
+ return Collections.singletonList(clean);
}
-
for (final String longOpt : longOpts.keySet()) {
- if (longOpt.startsWith(opt)) {
+ if (longOpt.startsWith(clean)) {
matchingOpts.add(longOpt);
}
}
-
return matchingOpts;
}
@@ -222,11 +218,10 @@ public class Options implements Serializable {
* @param opt short or long name of the {@link Option}
* @return the option represented by opt
*/
- public Option getOption(String opt) {
- opt = Util.stripLeadingHyphens(opt);
-
- final Option option = shortOpts.get(opt);
- return option != null ? option : longOpts.get(opt);
+ public Option getOption(final String opt) {
+ final String clean = Util.stripLeadingHyphens(opt);
+ final Option option = shortOpts.get(clean);
+ return option != null ? option : longOpts.get(clean);
}
/**
@@ -273,10 +268,9 @@ public class Options implements Serializable {
* @return true if the named {@link Option} is a member of this {@link Options}
* @since 1.3
*/
- public boolean hasLongOption(String opt) {
- opt = Util.stripLeadingHyphens(opt);
-
- return longOpts.containsKey(opt);
+ public boolean hasLongOption(final String opt) {
+ final String clean = Util.stripLeadingHyphens(opt);
+ return longOpts.containsKey(clean);
}
/**
@@ -285,10 +279,9 @@ public class Options implements Serializable {
* @param opt short or long name of the {@link Option}
* @return true if the named {@link Option} is a member of this {@link Options}
*/
- public boolean hasOption(String opt) {
- opt = Util.stripLeadingHyphens(opt);
-
- return shortOpts.containsKey(opt) || longOpts.containsKey(opt);
+ public boolean hasOption(final String opt) {
+ final String clean = Util.stripLeadingHyphens(opt);
+ return shortOpts.containsKey(clean) || longOpts.containsKey(clean);
}
/**
@@ -298,10 +291,9 @@ public class Options implements Serializable {
* @return true if the named {@link Option} is a member of this {@link Options}
* @since 1.3
*/
- public boolean hasShortOption(String opt) {
- opt = Util.stripLeadingHyphens(opt);
-
- return shortOpts.containsKey(opt);
+ public boolean hasShortOption(final String opt) {
+ final String clean = Util.stripLeadingHyphens(opt);
+ return shortOpts.containsKey(clean);
}
/**
@@ -321,13 +313,11 @@ public class Options implements Serializable {
@Override
public String toString() {
final StringBuilder buf = new StringBuilder();
-
buf.append("[ Options: [ short ");
buf.append(shortOpts.toString());
buf.append(" ] [ long ");
buf.append(longOpts);
buf.append(" ]");
-
return buf.toString();
}
}
diff --git a/src/main/java/org/apache/commons/cli/Parser.java b/src/main/java/org/apache/commons/cli/Parser.java
index a524e00..b3b5510 100644
--- a/src/main/java/org/apache/commons/cli/Parser.java
+++ b/src/main/java/org/apache/commons/cli/Parser.java
@@ -141,7 +141,8 @@ public abstract class Parser implements CommandLineParser {
*
* @since 1.1
*/
- public CommandLine parse(final Options options, String[] arguments, final Properties properties, final boolean stopAtNonOption) throws ParseException {
+ public CommandLine parse(final Options options, final String[] arguments, final Properties properties, final boolean stopAtNonOption)
+ throws ParseException {
// clear out the data in options in case it's been used before (CLI-71)
for (final Option opt : options.helpOptions()) {
opt.clearValues();
@@ -159,11 +160,7 @@ public abstract class Parser implements CommandLineParser {
boolean eatTheRest = false;
- if (arguments == null) {
- arguments = new String[0];
- }
-
- final List<String> tokenList = Arrays.asList(flatten(getOptions(), arguments, stopAtNonOption));
+ final List<String> tokenList = Arrays.asList(flatten(getOptions(), arguments == null ? new String[0] : arguments, stopAtNonOption));
final ListIterator<String> iterator = tokenList.listIterator();
diff --git a/src/main/java/org/apache/commons/cli/Util.java b/src/main/java/org/apache/commons/cli/Util.java
index fff1005..dce9d6d 100644
--- a/src/main/java/org/apache/commons/cli/Util.java
+++ b/src/main/java/org/apache/commons/cli/Util.java
@@ -33,12 +33,11 @@ final class Util {
* @param str The string from which the leading and trailing quotes should be removed.
* @return The string without the leading and trailing quotes.
*/
- static String stripLeadingAndTrailingQuotes(String str) {
+ static String stripLeadingAndTrailingQuotes(final String str) {
final int length = str.length();
if (length > 1 && str.startsWith("\"") && str.endsWith("\"") && str.substring(1, length - 1).indexOf('"') == -1) {
- str = str.substring(1, length - 1);
+ return str.substring(1, length - 1);
}
-
return str;
}
@@ -58,7 +57,6 @@ final class Util {
if (str.startsWith("-")) {
return str.substring(1);
}
-
return str;
}
}