Package org.apache.uima.internal.util
Class CommandLineParser
- java.lang.Object
-
- org.apache.uima.internal.util.CommandLineParser
-
public class CommandLineParser extends java.lang.ObjectSimple command line parsing utility.The parser can only handle parameters that take 0 or 1 arguments. That is, you can parse command lines like
doit -f -i file1 -o file2 --dir file3 /h file4 file5 file6The syntax of parameters is left to the user, no common prefix is assumed or enforced. Parameter names can be arbitrarily long. You can define aliases for parameters:
-h,/Hand--helpcan all mean the same parameter if so configured.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classCommandLineParser.CmdLineParam
-
Field Summary
Fields Modifier and Type Field Description private java.util.HashMap<CommandLineParser.CmdLineParam,java.lang.String>cmdLineMapprivate java.util.HashMap<java.lang.String,CommandLineParser.CmdLineParam>paramMapprivate java.lang.String[]restArgs
-
Constructor Summary
Constructors Constructor Description CommandLineParser()Create a new command line parser.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaddAlias(java.lang.String param, java.lang.String alias)Add an alias for an already defined parameter.booleanaddParameter(java.lang.String paramName)Add a new switch.booleanaddParameter(java.lang.String paramName, boolean hasArg)Add a new parameter name.java.lang.StringgetParamArgument(java.lang.String paramName)Get the argument to a parameter, if it exists.java.lang.String[]getRestArgs()Get the rest of the args, i.e., args that follow the last know parameter.booleanisInArgsList(java.lang.String paramName)Check if the parameter was used on the command line.booleanisKnownParameter(java.lang.String paramName)Check if the given parameter name is known to this parser.voidparseCmdLine(java.lang.String[] args)Parse the command line.
-
-
-
Field Detail
-
paramMap
private java.util.HashMap<java.lang.String,CommandLineParser.CmdLineParam> paramMap
-
cmdLineMap
private java.util.HashMap<CommandLineParser.CmdLineParam,java.lang.String> cmdLineMap
-
restArgs
private java.lang.String[] restArgs
-
-
Method Detail
-
addParameter
public boolean addParameter(java.lang.String paramName, boolean hasArg)Add a new parameter name.- Parameters:
paramName- The name of the parameter.hasArg- If the command line argument following this parameter should be interpreted as an argument to the parameter.- Returns:
falseiffparamNamealready exists.
-
addParameter
public boolean addParameter(java.lang.String paramName)
Add a new switch. This is the same as callingaddParameter(name, false).- Parameters:
paramName- The name of the parameter.- Returns:
falseiffparamNamealready exists.
-
addAlias
public boolean addAlias(java.lang.String param, java.lang.String alias)Add an alias for an already defined parameter.- Parameters:
param- A known parameter.alias- The alias.- Returns:
falseiff the parameter does not exist or the alias is already known.
-
parseCmdLine
public void parseCmdLine(java.lang.String[] args) throws java.lang.ExceptionParse the command line.- Parameters:
args- The command line args as passed tomain().- Throws:
java.lang.Exception- If a parameter that requires an argument does not have one (i.e., is the last parameter in the list).
-
getRestArgs
public java.lang.String[] getRestArgs()
Get the rest of the args, i.e., args that follow the last know parameter.- Returns:
- The tail end of the args list, usually file name arguments.
-
isKnownParameter
public boolean isKnownParameter(java.lang.String paramName)
Check if the given parameter name is known to this parser.- Parameters:
paramName- The name of the parameter.- Returns:
trueiff the name was added withaddParameter()oraddAlias().
-
isInArgsList
public boolean isInArgsList(java.lang.String paramName)
Check if the parameter was used on the command line.- Parameters:
paramName- The name of the parameter.- Returns:
trueiff the name is known and was used as a command line argument.
-
getParamArgument
public java.lang.String getParamArgument(java.lang.String paramName)
Get the argument to a parameter, if it exists.- Parameters:
paramName- The name of the parameter.- Returns:
- The argument to the parameter if the parameter was used and takes an argument;
null, else.
-
-