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 c886434 Added setter for Builder.option (#33)
c886434 is described below
commit c886434a34107af01ae3cf70645e8e7d8aaa9ede
Author: Waldemar Sojka <[email protected]>
AuthorDate: Wed Oct 20 14:03:32 2021 +0200
Added setter for Builder.option (#33)
* added separate setter for Builder.opt
* added setter for option name with validation
* fixed checkstyle error
---
src/main/java/org/apache/commons/cli/Option.java | 14 +++++++++++++-
src/test/java/org/apache/commons/cli/OptionTest.java | 2 ++
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/src/main/java/org/apache/commons/cli/Option.java
b/src/main/java/org/apache/commons/cli/Option.java
index 4a85907..dfaff0e 100644
--- a/src/main/java/org/apache/commons/cli/Option.java
+++ b/src/main/java/org/apache/commons/cli/Option.java
@@ -51,7 +51,7 @@ public class Option implements Cloneable, Serializable {
public static final class Builder {
/** The name of the option */
- private final String option;
+ private String option;
/** description of the option */
private String description;
@@ -88,6 +88,18 @@ public class Option implements Cloneable, Serializable {
}
/**
+ * Sets the name of the Option.
+ *
+ * @param opt the name of the Option
+ * @return this builder, to allow method chaining
+ * @throws IllegalArgumentException if there are any non valid Option
characters in {@code opt}
+ */
+ public Builder opt(String opt) throws IllegalArgumentException {
+ this.option = OptionValidator.validate(opt);
+ return this;
+ }
+
+ /**
* Sets the display name for the argument value.
*
* @param argName the display name for the argument value.
diff --git a/src/test/java/org/apache/commons/cli/OptionTest.java
b/src/test/java/org/apache/commons/cli/OptionTest.java
index 286aa3a..21859fe 100644
--- a/src/test/java/org/apache/commons/cli/OptionTest.java
+++ b/src/test/java/org/apache/commons/cli/OptionTest.java
@@ -109,6 +109,8 @@ public class OptionTest {
String.class);
checkOption(Option.builder("a").desc("desc").type(Integer.class).build(), "a",
"desc", null, Option.UNINITIALIZED, null, false, false, defaultSeparator,
Integer.class);
+
checkOption(Option.builder().opt("a").desc("desc").type(Integer.class).build(),
"a", "desc", null, Option.UNINITIALIZED, null, false, false,
+ defaultSeparator, Integer.class);
}
@Test