projects
/
svjatoslav_commons.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refactored commandline parser API for simpler usage
[svjatoslav_commons.git]
/
src
/
main
/
java
/
eu
/
svjatoslav
/
commons
/
commandline
/
parameterparser
/
Parser.java
diff --git
a/src/main/java/eu/svjatoslav/commons/commandline/parameterparser/Parser.java
b/src/main/java/eu/svjatoslav/commons/commandline/parameterparser/Parser.java
index
d2f623f
..
4ab529d
100755
(executable)
--- a/
src/main/java/eu/svjatoslav/commons/commandline/parameterparser/Parser.java
+++ b/
src/main/java/eu/svjatoslav/commons/commandline/parameterparser/Parser.java
@@
-1,6
+1,6
@@
/*
* Svjatoslav Commons - shared library of common functionality.
/*
* Svjatoslav Commons - shared library of common functionality.
- * Copyright
(C) 2012
, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
+ * Copyright
©2012-2013
, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of version 2 of the GNU General Public License
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of version 2 of the GNU General Public License
@@
-11,6
+11,8
@@
package eu.svjatoslav.commons.commandline.parameterparser;
import java.util.ArrayList;
import java.util.ArrayList;
+import eu.svjatoslav.commons.commandline.parameterparser.parameter.StringParameter;
+
/**
* <pre>
* Single commandline parameter can have any amount of arguments.
/**
* <pre>
* Single commandline parameter can have any amount of arguments.
@@
-24,16
+26,21
@@
public class Parser {
parameters.add(parameter);
}
parameters.add(parameter);
}
+ public StringParameter createStringParameter(final String description) {
+ final StringParameter parameter = new StringParameter(description);
+ parameters.add(parameter);
+ return parameter;
+ }
+
/**
* Return parameter by given alias or <code>null</code> if no parameter
* exists for given alias.
*/
public Parameter getParameterByAlias(final String alias) {
/**
* Return parameter by given alias or <code>null</code> if no parameter
* exists for given alias.
*/
public Parameter getParameterByAlias(final String alias) {
- for (final Parameter parameter : parameters)
{
+ for (final Parameter parameter : parameters)
if (parameter.matchesAlias(alias))
return parameter;
if (parameter.matchesAlias(alias))
return parameter;
- }
return null;
}
return null;
}
@@
-60,10
+67,9
@@
public class Parser {
return false;
} else {
return false;
} else {
- if (currentParameter != null)
{
+ if (currentParameter != null)
if (!currentParameter.noMoreArguments())
return false;
if (!currentParameter.noMoreArguments())
return false;
- }
parameterForAlias.setParameterSpecified(true);
currentParameter = parameterForAlias;
parameterForAlias.setParameterSpecified(true);
currentParameter = parameterForAlias;
@@
-73,21
+79,19
@@
public class Parser {
// check if any mandatory parameters are missing
// check if any mandatory parameters are missing
- for (final Parameter parameter : parameters)
{
+ for (final Parameter parameter : parameters)
if (parameter.isMandatory() && (!parameter.isParameterSpecified())) {
System.out.println("Error! Mandatory parameter ("
+ parameter.getAliases() + ") is not specified.");
return false;
}
if (parameter.isMandatory() && (!parameter.isParameterSpecified())) {
System.out.println("Error! Mandatory parameter ("
+ parameter.getAliases() + ") is not specified.");
return false;
}
- }
return true;
}
public void showHelp() {
return true;
}
public void showHelp() {
- for (final Parameter parameter : parameters)
{
+ for (final Parameter parameter : parameters)
System.out.println(parameter.getHelp());
System.out.println(parameter.getHelp());
- }
}
}
}
}