diff --git a/src/ArgsParser/ArgsParser.java b/src/ArgsParser/ArgsParser.java
index a73dbd3..82503fa 100644
--- a/src/ArgsParser/ArgsParser.java
+++ b/src/ArgsParser/ArgsParser.java
@@ -50,7 +50,7 @@ of this software and associated documentation files (the "Software"), to deal
*
*
After all parameters are added, the {@link #parseArgs()} method has to be called! (this is mandatory!)
* Then the arguments can be accessed by using {@link Parameter#getArgument()} on the specific Parameter variable
- * and type specific arguments can be accessed if a type i.e. Integer.Class was provided in {@link #addParameter(String, Class, boolean)}
+ * and type specific arguments can be accessed if a type i.e. Integer.Class was provided in {@link #addParameter(String, String, String, boolean)}
*
* available at: GitHub
* @author Niklas Max G. 2024
@@ -113,29 +113,17 @@ private String makeFlag(String flagName, boolean isShortName) {
}
}
- // Simple Constructors
-
- /**
- * Adds a new parameter that will be checked in args and assigned to the Parameter instance
- * @param flagName name of the parameter (-- will automatically be added)
- * @param isMandatory true if parameter is mandatory, false if optional
- * @return the created Parameter instance
- */
- public Parameter addParameter(String flagName, boolean isMandatory) {
- Parameter parameter = new Parameter(makeFlag(flagName, false), isMandatory, this);
- prepareParameter(parameter);
- return parameter;
- }
/**
* Adds a new parameter that will be checked in args and assigned to the Parameter instance
* @param flagName name of the parameter (-- will automatically be added)
* @param shortName short version of the parameter (- will automatically be added)
* @param isMandatory true if parameter is mandatory, false if optional
+ * @param type type of the parameter (Class.Integer, Class.Double, Class.Boolean, Class.Character)
* @return the created Parameter instance
*/
- public Parameter addParameter(String flagName, String shortName, boolean isMandatory) {
- Parameter parameter = new Parameter(makeFlag(flagName, false), makeFlag(shortName, true), isMandatory, this);
+ public Parameter addParameter(String flagName, String shortName, boolean isMandatory, Class> type) {
+ Parameter parameter = new Parameter(makeFlag(flagName, false), makeFlag(shortName, true), "", type, isMandatory, this);
prepareParameter(parameter);
return parameter;
}
@@ -143,29 +131,25 @@ public Parameter addParameter(String flagName, String shortName, boolean isManda
/**
* Adds a new parameter that will be checked in args and assigned to the Parameter instance
* @param flagName name of the parameter (-- will automatically be added)
+ * @param defaultValue default value of the parameter - by usage sets the parameter to optional
* @param shortName short version of the parameter (- will automatically be added)
- * @param description description of the parameter
- * @param isMandatory true if parameter is mandatory, false if optional
* @return the created Parameter instance
*/
- public Parameter addParameter(String flagName, String shortName, String description, boolean isMandatory) {
- Parameter parameter = new Parameter(makeFlag(flagName, false), makeFlag(shortName, true), description, isMandatory, this);
+ public Parameter addParameter(String flagName, String shortName, Object defaultValue) {
+ Parameter parameter = new Parameter(makeFlag(flagName, false), defaultValue, makeFlag(shortName, true), "", this);
prepareParameter(parameter);
return parameter;
}
- // Constructors with type definition
-
/**
* Adds a new parameter that will be checked in args and assigned to the Parameter instance
* @param flagName name of the parameter (-- will automatically be added)
* @param shortName short version of the parameter (- will automatically be added)
- * @param type type of the parameter (Class.Integer, Class.Double, Class.Boolean, Class.Character)
* @param isMandatory true if parameter is mandatory, false if optional
* @return the created Parameter instance
*/
- public Parameter addParameter(String flagName, String shortName, Class> type, boolean isMandatory) {
- Parameter parameter = new Parameter(makeFlag(flagName, false), makeFlag(shortName, true), type, isMandatory, this);
+ public Parameter addParameter(String flagName, String shortName, boolean isMandatory) {
+ Parameter parameter = new Parameter(makeFlag(flagName, false), makeFlag(shortName, true), "", isMandatory, this);
prepareParameter(parameter);
return parameter;
}
@@ -173,12 +157,13 @@ public Parameter addParameter(String flagName, String shortName, Class> type,
/**
* Adds a new parameter that will be checked in args and assigned to the Parameter instance
* @param flagName name of the parameter (-- will automatically be added)
- * @param type type of the parameter (Class.Integer, Class.Double, Class.Boolean, Class.Character)
+ * @param shortName short version of the parameter (- will automatically be added)
+ * @param description description of the parameter
* @param isMandatory true if parameter is mandatory, false if optional
* @return the created Parameter instance
*/
- public Parameter addParameter(String flagName, Class> type, boolean isMandatory) {
- Parameter parameter = new Parameter(makeFlag(flagName, false), type, isMandatory, this);
+ public Parameter addParameter(String flagName, String shortName, String description, boolean isMandatory) {
+ Parameter parameter = new Parameter(makeFlag(flagName, false), makeFlag(shortName, true), description, isMandatory, this);
prepareParameter(parameter);
return parameter;
}
@@ -188,43 +173,16 @@ public Parameter addParameter(String flagName, Class> type, boolean isMandator
* @param flagName name of the parameter (-- will automatically be added)
* @param shortName short version of the parameter (- will automatically be added)
* @param description description of the parameter
- * @param type type of the parameter (Class.Integer, Class.Double, Class.Boolean, Class.Character)
* @param isMandatory true if parameter is mandatory, false if optional
+ * @param type type of the parameter (Class.Integer, Class.Double, Class.Boolean, Class.Character)
* @return the created Parameter instance
*/
- public Parameter addParameter(String flagName, String shortName, String description, Class> type, boolean isMandatory) {
+ public Parameter addParameter(String flagName, String shortName, String description, boolean isMandatory, Class> type) {
Parameter parameter = new Parameter(makeFlag(flagName, false), makeFlag(shortName, true), description, type, isMandatory, this);
prepareParameter(parameter);
return parameter;
}
- // Constructors with default value
-
- /**
- * Adds a new parameter that will be checked in args and assigned to the Parameter instance
- * @param flagName name of the parameter (-- will automatically be added)
- * @param defaultValue default value of the parameter - by usage sets the parameter to optional
- * @return the created Parameter instance
- */
- public Parameter addParameter(String flagName, Object defaultValue) {
- Parameter parameter = new Parameter(makeFlag(flagName, false), defaultValue, this);
- prepareParameter(parameter);
- return parameter;
- }
-
- /**
- * Adds a new parameter that will be checked in args and assigned to the Parameter instance
- * @param flagName name of the parameter (-- will automatically be added)
- * @param defaultValue default value of the parameter - by usage sets the parameter to optional
- * @param shortName short version of the parameter (- will automatically be added)
- * @return the created Parameter instance
- */
- public Parameter addParameter(String flagName, Object defaultValue, String shortName) {
- Parameter parameter = new Parameter(makeFlag(flagName, false), defaultValue, makeFlag(shortName, true), this);
- prepareParameter(parameter);
- return parameter;
- }
-
/**
* Adds a new parameter that will be checked in args and assigned to the Parameter instance
* @param flagName name of the parameter (-- will automatically be added)
@@ -233,7 +191,7 @@ public Parameter addParameter(String flagName, Object defaultValue, String short
* @param description description of the parameter
* @return the created Parameter instance
*/
- public Parameter addParameter(String flagName, Object defaultValue, String shortName, String description) {
+ public Parameter addParameter(String flagName, String shortName, String description, Object defaultValue) {
Parameter parameter = new Parameter(makeFlag(flagName, false), defaultValue, makeFlag(shortName, true), description, this);
prepareParameter(parameter);
return parameter;
@@ -425,7 +383,7 @@ private String parameterHelpString(Parameter parameter) {
String name = parameter.getFlagName();
String shortName = parameter.getShortName() == null ? "/" : parameter.getShortName();
- String description = parameter.getDescription() == null ? "No description provided!" : parameter.getDescription();
+ String description = parameter.getDescription().trim().isEmpty() ? "No description available!" : parameter.getDescription();
String isMandatory = parameter.isMandatory() ? "(!)" : "(+)";
StringBuilder helpString = new StringBuilder("### ");
diff --git a/src/ArgsParser/Parameter.java b/src/ArgsParser/Parameter.java
index 59c6d76..8d95292 100644
--- a/src/ArgsParser/Parameter.java
+++ b/src/ArgsParser/Parameter.java
@@ -34,47 +34,20 @@ of this software and associated documentation files (the "Software"), to deal
*/
public class Parameter {
private final String flagName;
+ private final String shortName;
+ private final String description;
private final boolean isMandatory;
private final ArgsParser parser;
- private Class> type;
+ private final Class> type;
private boolean typeWasSet = false;
private boolean hasArgument = false;
private String defaultValue = null;
- private String shortName = null;
- private String description = null;
private String argument = null;
private Integer argumentAsInteger = null;
private Double argumentAsDouble = null;
private Boolean argumentAsBoolean = null;
private Character argumentAsChar = null;
- // Simple Constructors
-
- /**
- * Constructor for the Parameter class
- * @param flagName name of the parameter
- * @param isMandatory true if the parameter is mandatory, false otherwise
- * @param parserInstance instance of the ArgsParser class
- */
- protected Parameter(String flagName, boolean isMandatory, ArgsParser parserInstance) {
- this.flagName = flagName;
- this.isMandatory = isMandatory;
- this.parser = parserInstance;
- this.type = String.class;
- }
-
- /**
- * Constructor for the Parameter class
- * @param flagName name of the parameter
- * @param shortName short name of the parameter
- * @param isMandatory true if the parameter is mandatory, false otherwise
- * @param parserInstance instance of the ArgsParser class
- */
- protected Parameter(String flagName, String shortName, boolean isMandatory, ArgsParser parserInstance) {
- this(flagName, isMandatory, parserInstance);
- this.shortName = shortName;
- }
-
/**
* Constructor for the Parameter class
* @param flagName name of the parameter
@@ -84,36 +57,12 @@ protected Parameter(String flagName, String shortName, boolean isMandatory, Args
* @param parserInstance instance of the ArgsParser class
*/
protected Parameter(String flagName, String shortName, String description, boolean isMandatory, ArgsParser parserInstance) {
- this(flagName, shortName, isMandatory, parserInstance);
- this.description = description;
- }
-
- // Constructors with type definition
-
- /**
- * Constructor for the Parameter class with type definition
- * @param flagName name of the parameter
- * @param type type of the parameter
- * @param isMandatory true if the parameter is mandatory, false otherwise
- * @param parserInstance instance of the ArgsParser class
- */
- protected Parameter(String flagName, Class> type, boolean isMandatory, ArgsParser parserInstance) {
- this(flagName, isMandatory, parserInstance);
- this.type = type;
- this.typeWasSet = true;
- }
-
- /**
- * Constructor for the Parameter class with type definition
- * @param flagName name of the parameter
- * @param shortName short name of the parameter
- * @param type type of the parameter
- * @param isMandatory true if the parameter is mandatory, false otherwise
- * @param parserInstance instance of the ArgsParser class
- */
- protected Parameter(String flagName, String shortName, Class> type, boolean isMandatory, ArgsParser parserInstance) {
- this(flagName, type, isMandatory, parserInstance);
+ this.flagName = flagName;
this.shortName = shortName;
+ this.description = description;
+ this.parser = parserInstance;
+ this.isMandatory = isMandatory;
+ this.type = String.class;
}
/**
@@ -126,41 +75,13 @@ protected Parameter(String flagName, String shortName, Class> type, boolean is
* @param parserInstance instance of the ArgsParser class
*/
protected Parameter(String flagName, String shortName, String description, Class> type, boolean isMandatory, ArgsParser parserInstance) {
- this(flagName, shortName, type, isMandatory, parserInstance);
- this.description = description;
- }
-
- // Constructors with default value
- // (they automatically set the type of the parameter based on the type of the provided default value)
-
- /**
- * Constructor for the Parameter class with default value
- * (sets type of Parameter based on the type of the default value)
- * @param flagName name of the parameter
- * @param defaultValue default value of the parameter
- * @param parserInstance instance of the ArgsParser class
- */
- protected Parameter(String flagName, Object defaultValue, ArgsParser parserInstance) {
this.flagName = flagName;
- this.isMandatory = false;
- this.parser = parserInstance;
- this.defaultValue = defaultValue.toString();
- setDefault(defaultValue);
- type = defaultValue.getClass();
- typeWasSet = true;
- }
-
- /**
- * Constructor for the Parameter class with default value
- * (sets type of Parameter based on the type of the default value)
- * @param flagName name of the parameter
- * @param shortName short name of the parameter
- * @param defaultValue default value of the parameter
- * @param parserInstance instance of the ArgsParser class
- */
- protected Parameter(String flagName, Object defaultValue, String shortName, ArgsParser parserInstance) {
- this(flagName, defaultValue, parserInstance);
this.shortName = shortName;
+ this.description = description;
+ this.parser = parserInstance;
+ this.isMandatory = isMandatory;
+ this.type = type;
+ this.typeWasSet = true;
}
/**
@@ -173,8 +94,14 @@ protected Parameter(String flagName, Object defaultValue, String shortName, Args
* @param parserInstance instance of the ArgsParser class
*/
protected Parameter(String flagName, Object defaultValue, String shortName, String description, ArgsParser parserInstance) {
- this(flagName, defaultValue, shortName, parserInstance);
+ this.flagName = flagName;
+ this.shortName = shortName;
this.description = description;
+ this.parser = parserInstance;
+ this.isMandatory = false;
+ setDefault(defaultValue);
+ type = defaultValue.getClass();
+ typeWasSet = true;
}
/**
@@ -300,7 +227,7 @@ protected void setArgument(String argument) throws InvalidArgTypeArgsException {
* @throws IllegalArgumentException if the type of defaultValue is unsupported
*/
protected void setDefault(T defaultValue) {
- this.argument = defaultValue.toString();
+ this.argument = this.defaultValue = defaultValue.toString();
switch (defaultValue) {
case String s -> argument = s;
diff --git a/src/test/TestArgsParser.java b/src/test/TestArgsParser.java
index a8cbaf3..c945cac 100644
--- a/src/test/TestArgsParser.java
+++ b/src/test/TestArgsParser.java
@@ -11,7 +11,7 @@ public class TestArgsParser {
@Test
public void noArgumentsProvided() {
ArgsParser parser = new ArgsParser(new String[] {});
- Parameter file = parser.addParameter("-f", true);
+ Parameter file = parser.addParameter("file", "f", " ",true);
try {
parser.parseArgs();
} catch (ArgsException e) {
@@ -23,7 +23,7 @@ public void noArgumentsProvided() {
@Test
public void testGetArgument() {
ArgsParser parser = new ArgsParser(new String[] {"--file", "file.txt"});
- Parameter file = parser.addParameter("file", true);
+ Parameter file = parser.addParameter("file", "f", " ", true);
try {
parser.parseArgs();
} catch (Exception e) {
@@ -39,8 +39,8 @@ public void testGetArgument() {
@Test
public void testUnknownParameter() {
ArgsParser parser = new ArgsParser(new String[] {"-f", "file.txt", "-s", "save.txt"});
- Parameter file = parser.addParameter("-file", true);
- Parameter save = parser.addParameter("--save", true);
+ Parameter file = parser.addParameter("file", "f", "descr", true);
+ Parameter save = parser.addParameter("save", "s", "descr", true);
try {
parser.parseArgs();
} catch (Exception e) {
@@ -51,8 +51,8 @@ public void testUnknownParameter() {
@Test
public void testGetArgumentWithMultipleFlagsAndWrongInput() {
ArgsParser parser = new ArgsParser(new String[] {"-f", "file.txt", "--save", "save.txt", "-s"});
- Parameter file = parser.addParameter("file", "f", true);
- Parameter save = parser.addParameter("save", true);
+ Parameter file = parser.addParameter("file", "f", "descr", true);
+ Parameter save = parser.addParameter("save", "w", "descr", true);
try {
parser.parseArgs();
} catch (Exception e) {
@@ -66,8 +66,8 @@ public void testGetArgumentWithMultipleFlagsAndWrongInput() {
@Test
public void testMissingArgument() {
ArgsParser parser = new ArgsParser(new String[] {"--file", "--save", "save.txt"});
- Parameter file = parser.addParameter("file", true);
- Parameter save = parser.addParameter("save", true);
+ Parameter file = parser.addParameter("file", "m", "descr", true);
+ Parameter save = parser.addParameter("save", "s", "descr", true);
try {
parser.parseArgs();
} catch (Exception e) {
@@ -79,8 +79,8 @@ public void testMissingArgument() {
@Test
public void testMissingLastArgument() {
ArgsParser parser = new ArgsParser(new String[]{"--file", "file.txt", "--save"});
- Parameter file = parser.addParameter("file", true);
- Parameter save = parser.addParameter("--save", true);
+ Parameter file = parser.addParameter("--file", "f", "descr", true);
+ Parameter save = parser.addParameter("--save", "s", "descr", true);
try {
parser.parseArgs();
} catch (Exception e) {
@@ -92,8 +92,8 @@ public void testMissingLastArgument() {
@Test
public void testMissingShorts() {
ArgsParser parser = new ArgsParser(new String[]{"-f", "/to/file", "--save", "save.txt"});
- Parameter file = parser.addParameter("--file", true);
- Parameter save = parser.addParameter("--save", true);
+ Parameter file = parser.addParameter("--file", "m", "descr", true);
+ Parameter save = parser.addParameter("--save", "s", true);
try {
parser.parseArgs();
} catch (Exception e) {
@@ -105,9 +105,9 @@ public void testMissingShorts() {
@Test
public void testMandatoryArgMissing() {
ArgsParser parser = new ArgsParser(new String[]{"--file", "file.txt", "--optional", "optional.txt"});
- Parameter file = parser.addParameter("file", true);
- Parameter save = parser.addParameter("save", true);
- Parameter optional = parser.addParameter("optional", false);
+ Parameter file = parser.addParameter("file", "f", "descr", true);
+ Parameter save = parser.addParameter("save", "s", "descr", true);
+ Parameter optional = parser.addParameter("optional", "o", "descr", false);
try {
parser.parseArgs();
} catch (ArgsException e) {
@@ -118,8 +118,8 @@ public void testMandatoryArgMissing() {
@Test
public void testTooManyArguments() {
ArgsParser parser = new ArgsParser(new String[]{"--file", "file.txt", "--save", "save.txt", "extra"});
- Parameter file = parser.addParameter("file", true);
- Parameter save = parser.addParameter("save", true);
+ Parameter file = parser.addParameter("file", "f", "descr", true);
+ Parameter save = parser.addParameter("save", "s", "descr", true);
try {
parser.parseArgs();
} catch (ArgsException e) {
@@ -130,8 +130,8 @@ public void testTooManyArguments() {
@Test
public void testGetArgumentAsString() {
ArgsParser parser = new ArgsParser(new String[] {"--file", "file.txt", "-int", "5"});
- Parameter file = parser.addParameter("file", true);
- Parameter integer = parser.addParameter("integer", "int", true);
+ Parameter file = parser.addParameter("file", "f", true);
+ Parameter integer = parser.addParameter("integer", "int", "descr", true);
try {
parser.parseArgs();
} catch (Exception e) {
@@ -145,8 +145,8 @@ public void testGetArgumentAsString() {
@Test
public void testGetArgumentWithGenericType() {
ArgsParser parser = new ArgsParser(new String[] {"--file", "file.txt", "--integer", "5"});
- Parameter file = parser.addParameter("file", true);
- Parameter integer = parser.addParameter("integer", Integer.class , true);
+ Parameter file = parser.addParameter("file", "f", "descr", true);
+ Parameter integer = parser.addParameter("integer", "int", "descr", true, Integer.class);
try {
parser.parseArgs();
} catch (Exception e) {
@@ -161,8 +161,8 @@ public void testGetArgumentWithGenericType() {
@Test
public void testBooleanGetArgument() {
ArgsParser parser = new ArgsParser(new String[] {"--file", "file.txt", "--boolean", "true"});
- Parameter file = parser.addParameter("file", true);
- Parameter bool = parser.addParameter("boolean", Boolean.class , true);
+ Parameter file = parser.addParameter("file", "f", "descr", true);
+ Parameter bool = parser.addParameter("boolean", "b", "descr", true, Boolean.class);
try {
parser.parseArgs();
} catch (Exception e) {
@@ -175,8 +175,8 @@ public void testBooleanGetArgument() {
@Test
public void testGetArgumentAsDouble() {
ArgsParser parser = new ArgsParser(new String[] {"--file", "file.txt", "--double", "5.5"});
- Parameter file = parser.addParameter("file", true);
- Parameter doub = parser.addParameter("double", Double.class , true);
+ Parameter file = parser.addParameter("file", "f", "descr", true);
+ Parameter doub = parser.addParameter("double", "d", "descr", true, Double.class);
try {
parser.parseArgs();
} catch (Exception e) {
@@ -192,8 +192,8 @@ public void testGetArgumentAsDouble() {
@Test
public void testGetArgumentAsDoubleWithWrongInput() {
ArgsParser parser = new ArgsParser(new String[] {"--file", "file.txt", "--double", "5.5.5"});
- Parameter file = parser.addParameter("file", true);
- Parameter doub = parser.addParameter("double", Double.class , true);
+ Parameter file = parser.addParameter("file", "f", "descr", true);
+ Parameter doub = parser.addParameter("double", "d", "descr", true, Double.class);
try {
parser.parseArgs();
} catch (Exception e) {
@@ -204,8 +204,8 @@ public void testGetArgumentAsDoubleWithWrongInput() {
@Test
public void useDefaultValue() {
ArgsParser parser = new ArgsParser(new String[] {"--file", "file.txt"});
- Parameter file = parser.addParameter("file", true);
- Parameter doub = parser.addParameter("double", 12.3);
+ Parameter file = parser.addParameter("file", "f", "descr", true);
+ Parameter doub = parser.addParameter("double", "d", "descr", 12.3);
try {
parser.parseArgs();
} catch (Exception e) {
@@ -219,8 +219,8 @@ public void useDefaultValue() {
@Test
public void useDefaultValueCast() {
ArgsParser parser = new ArgsParser(new String[] {"--file", "file.txt"});
- Parameter file = parser.addParameter("file", true);
- Parameter doub = parser.addParameter("double", 12.3);
+ Parameter file = parser.addParameter("file", "f", "descr", true);
+ Parameter doub = parser.addParameter("double", "d", "descr", 12.3);
try {
parser.parseArgs();
} catch (Exception e) {
@@ -235,8 +235,8 @@ public void useDefaultValueCast() {
@Test
public void testStringDefault() {
ArgsParser parser = new ArgsParser(new String[] {"--file", "file.txt"});
- Parameter file = parser.addParameter("file", "default");
- Parameter doub = parser.addParameter("double", 12.3);
+ Parameter file = parser.addParameter("file", "f", "descr", "default");
+ Parameter doub = parser.addParameter("double", "d", 12.5);
try {
parser.parseArgs();
} catch (Exception e) {
@@ -251,8 +251,8 @@ public void testStringDefault() {
@Test
public void testHelp() {
ArgsParser parser = new ArgsParser(new String[] {"--help"});
- Parameter file = parser.addParameter("file", "/home/user/projects/one/two/my_project/source/main/java/com/example/myapp/ExampleClassThatWonTDoAnythingElseThanBeeingAnExample.java");
- Parameter doub = parser.addParameter("double", 12.3);
+ Parameter file = parser.addParameter("file", "f", "descri", "/home/user/projects/one/two/my_project/source/main/java/com/example/myapp/ExampleClassThatWonTDoAnythingElseThanBeeingAnExample.java");
+ Parameter doub = parser.addParameter("double", "d", "des", 12.3);
try {
parser.parseArgs();
} catch (CalledForHelpNotification e) {
@@ -264,10 +264,10 @@ public void testHelp() {
@Test
public void testLargerHelp() {
ArgsParser parser = new ArgsParser(new String[] {"--help"});
- Parameter file = parser.addParameter("file", "/home/user/projects/one/two/my_project/source/main/java/com/example/myapp/ExampleClassThatWonTDoAnythingElseThanBeeingAnExample.java", "f", "aasdijasoidjoai sjdoiajsd oijaosidja oijsdoaijsd oijaojovn eoin oilnsdo vöinasdv");
- Parameter doub = parser.addParameter("double", 12.3);
- Parameter bool = parser.addParameter("boolean", true);
- Parameter integer = parser.addParameter("integer", 5);
+ Parameter file = parser.addParameter("file", "s", "aasdijasoidjoai sjdoiajsd oijaosidja oijsdoaijsd oijaojovn eoin oilnsdo vöinasdv", "/home/user/projects/one/two/my_project/source/main/java/com/example/myapp/ExampleClassThatWonTDoAnythingElseThanBeeingAnExample.java");
+ Parameter doub = parser.addParameter("double", "d", 12.3);
+ Parameter bool = parser.addParameter("boolean", "b", "des", true);
+ Parameter integer = parser.addParameter("integer", "i", "des", 5);
try {
parser.parseArgs();
} catch (CalledForHelpNotification e) {