Package org.kohsuke.args4j
Class CmdLineParser
- java.lang.Object
-
- org.kohsuke.args4j.CmdLineParser
-
public class CmdLineParser extends java.lang.Object
Command line argument owner.For a typical usage, see this example.
-
-
Constructor Summary
Constructors Constructor Description CmdLineParser(java.lang.Object bean)
Creates a new command line owner that parses arguments/options and set them into the given object.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected OptionHandler
createOptionHandler(OptionDef o, Setter setter)
protected boolean
isOption(java.lang.String arg)
Returns true if the given token is an option (as opposed to an argument.)void
parseArgument(java.lang.String... args)
Parses the command line arguments and set them to the option bean given in the constructor.java.lang.String
printExample(ExampleMode mode)
Formats a command line example into a string.java.lang.String
printExample(ExampleMode mode, java.util.ResourceBundle rb)
Formats a command line example into a string.void
printSingleLineUsage(java.io.OutputStream out)
Prints a single-line usage to the screen.void
printSingleLineUsage(java.io.Writer w, java.util.ResourceBundle rb)
Prints a single-line usage to the screen.void
printUsage(java.io.OutputStream out)
Prints the list of options and their usages to the screen.void
printUsage(java.io.Writer out, java.util.ResourceBundle rb)
Prints the list of options and their usages to the screen.static void
registerHandler(java.lang.Class valueType, java.lang.Class<? extends OptionHandler> handlerClass)
Registers a user-definedOptionHandler
class with args4j.void
setUsageWidth(int usageWidth)
void
stopOptionParsing()
-
-
-
Constructor Detail
-
CmdLineParser
public CmdLineParser(java.lang.Object bean)
Creates a new command line owner that parses arguments/options and set them into the given object.- Parameters:
bean
- instance of a class annotated byOption
andArgument
. this object will receive values.- Throws:
IllegalAnnotationError
- if the option bean class is using args4j annotations incorrectly.
-
-
Method Detail
-
createOptionHandler
protected OptionHandler createOptionHandler(OptionDef o, Setter setter)
-
printExample
public java.lang.String printExample(ExampleMode mode)
Formats a command line example into a string. SeeprintExample(ExampleMode, ResourceBundle)
for more details.- Parameters:
mode
- must not be null.- Returns:
- always non-null.
-
printExample
public java.lang.String printExample(ExampleMode mode, java.util.ResourceBundle rb)
Formats a command line example into a string.This method produces a string like " -d <dir> -v -b", which is useful for printing a command line example, perhaps as a part of the usage screen.
- Parameters:
mode
- One of theExampleMode
constants. Must not be null. This determines what option should be a part of the returned string.rb
- If non-null, meta variables (<dir> in the above example) is treated as a key to this resource bundle, and the associated value is printed. SeeOption.metaVar()
. This is to support localization. Passing null would printOption.metaVar()
directly.- Returns:
- always non-null. If there's no option, this method returns
just the empty string "". Otherwise, this method returns a
string that contains a space at the beginning (but not at the end.)
This allows you to do something like:
System.err.println("java -jar my.jar"+parser.printExample(REQUIRED)+" arg1 arg2");
-
printUsage
public void printUsage(java.io.OutputStream out)
Prints the list of options and their usages to the screen.This is a convenience method for calling
printUsage(new OutputStreamWriter(out),null)
so that you can doprintUsage(System.err)
.
-
printUsage
public void printUsage(java.io.Writer out, java.util.ResourceBundle rb)
Prints the list of options and their usages to the screen.- Parameters:
rb
- if this is non-null,Option.usage()
is treated as a key to obtain the actual message from this resource bundle.
-
parseArgument
public void parseArgument(java.lang.String... args) throws CmdLineException
Parses the command line arguments and set them to the option bean given in the constructor.- Parameters:
args
- arguments to parse- Throws:
CmdLineException
- if there's any error parsing arguments, or ifrequired
option was not given.
-
isOption
protected boolean isOption(java.lang.String arg)
Returns true if the given token is an option (as opposed to an argument.)
-
registerHandler
public static void registerHandler(java.lang.Class valueType, java.lang.Class<? extends OptionHandler> handlerClass)
Registers a user-definedOptionHandler
class with args4j.This method allows users to extend the behavior of args4j by writing their own
OptionHandler
implementation.- Parameters:
valueType
- The specified handler is used when the field/method annotated byOption
is of this type.handlerClass
- This class must have the constructor that has the same signature asOptionHandler#OptionHandler(CmdLineParser, NamedOptionDef, Setter)
.
-
setUsageWidth
public void setUsageWidth(int usageWidth)
-
stopOptionParsing
public void stopOptionParsing()
-
printSingleLineUsage
public void printSingleLineUsage(java.io.OutputStream out)
Prints a single-line usage to the screen.This is a convenience method for calling
printUsage(new OutputStreamWriter(out),null)
so that you can doprintUsage(System.err)
.
-
printSingleLineUsage
public void printSingleLineUsage(java.io.Writer w, java.util.ResourceBundle rb)
Prints a single-line usage to the screen.- Parameters:
rb
- if this is non-null,Option.usage()
is treated as a key to obtain the actual message from this resource bundle.
-
-