Package aQute.lib.getopt
Class CommandLine
- java.lang.Object
-
- aQute.lib.getopt.CommandLine
-
public class CommandLine extends java.lang.ObjectHelps parsing command lines. This class takes target object, a primary command, and a list of arguments. It will then find the command in the target object. The method of this command must start with a "_" and take an parameter of Options type. Usually this is an interface that extends Options. The methods on this interface are options or flags (when they return boolean).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) classCommandLine.Option
-
Field Summary
Fields Modifier and Type Field Description private static java.util.regex.PatternASSIGNMENT(package private) Justifjustifprivate static java.util.regex.PatternLAST_PART(package private) static intLINELENGTH(package private) CommandLineMessagesmsg(package private) Reporterreporterprivate java.lang.Objectresult
-
Constructor Summary
Constructors Constructor Description CommandLine(Reporter reporter)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidassignOptionValue(java.util.Map<java.lang.String,java.lang.Object> options, java.lang.reflect.Method m, java.util.List<java.lang.String> args, boolean last)Assign an option, must handle flags, parameters, and parameters that can happen multiple times.java.lang.Stringexecute(java.lang.Object target, java.lang.String cmd, java.util.List<java.lang.String> input)Execute a command in a target object with a set of options and arguments and returns help text if something fails.voidgenerateDocumentation(java.lang.Object target, java.lang.Appendable out)java.util.Map<java.lang.String,java.lang.reflect.Method>getCommands(java.lang.Object target)Parse a class and return a list of command namesprivate CommandLine.OptiongetOption(java.lang.String optionName, java.lang.reflect.Method m)private java.util.Map<java.lang.String,java.lang.reflect.Method>getOptions(java.lang.Class<? extends Options> interf)Answer a list of the options specified in an options interface<T extends Options>
TgetOptions(java.lang.Class<T> specification, java.util.List<java.lang.String> arguments)Parse the options in a command line and return an interface that provides the options from this command line.java.lang.ObjectgetResult()private java.lang.StringgetSynopsis(java.lang.String cmd, java.util.Map<java.lang.String,java.lang.reflect.Method> options, Arguments patterns)private java.lang.StringgetTypeDescriptor(java.lang.reflect.Type type)Show a type in a nice wayprivate java.lang.Stringhelp(java.lang.Object target, java.lang.String cmd, java.lang.Class<? extends Options> type)private voidhelp(java.util.Formatter f, java.lang.Class<? extends Options> specification, java.lang.String title)voidhelp(java.util.Formatter f, java.lang.Object target)Show all commands in a targetvoidhelp(java.util.Formatter f, java.lang.Object target, java.lang.String cmd)Show the full help for a given commandvoidhelp(java.util.Formatter f, java.lang.Object target, java.lang.String cmd, java.lang.Class<? extends Options> specification)Provide a help text.private booleanisMandatory(java.lang.reflect.Method m)Answer if the method is marked mandatoryprivate booleanisOption(java.lang.reflect.Method m)private static java.lang.StringlastPart(java.lang.String name)java.lang.StringsubCmd(Options opts, java.lang.Object target)
-
-
-
Field Detail
-
LINELENGTH
static final int LINELENGTH
- See Also:
- Constant Field Values
-
ASSIGNMENT
private static final java.util.regex.Pattern ASSIGNMENT
-
reporter
Reporter reporter
-
justif
Justif justif
-
msg
CommandLineMessages msg
-
result
private java.lang.Object result
-
LAST_PART
private static final java.util.regex.Pattern LAST_PART
-
-
Constructor Detail
-
CommandLine
public CommandLine(Reporter reporter)
-
-
Method Detail
-
execute
public java.lang.String execute(java.lang.Object target, java.lang.String cmd, java.util.List<java.lang.String> input) throws java.lang.ExceptionExecute a command in a target object with a set of options and arguments and returns help text if something fails. Errors are reported.- Throws:
java.lang.Exception
-
generateDocumentation
public void generateDocumentation(java.lang.Object target, java.lang.Appendable out)
-
help
private java.lang.String help(java.lang.Object target, java.lang.String cmd, java.lang.Class<? extends Options> type) throws java.lang.Exception- Throws:
java.lang.Exception
-
getOptions
public <T extends Options> T getOptions(java.lang.Class<T> specification, java.util.List<java.lang.String> arguments) throws java.lang.Exception
Parse the options in a command line and return an interface that provides the options from this command line. This will parse up to (and including) -- or an argument that does not start with -- Throws:
java.lang.Exception
-
getOptions
private java.util.Map<java.lang.String,java.lang.reflect.Method> getOptions(java.lang.Class<? extends Options> interf)
Answer a list of the options specified in an options interface
-
assignOptionValue
public void assignOptionValue(java.util.Map<java.lang.String,java.lang.Object> options, java.lang.reflect.Method m, java.util.List<java.lang.String> args, boolean last)Assign an option, must handle flags, parameters, and parameters that can happen multiple times.- Parameters:
options- The command line mapargs- the args inputm- the selected method for this optionlast- if this is the last in a multi single character option
-
help
public void help(java.util.Formatter f, java.lang.Object target, java.lang.String cmd, java.lang.Class<? extends Options> specification)Provide a help text.
-
help
private void help(java.util.Formatter f, java.lang.Class<? extends Options> specification, java.lang.String title)
-
getOption
private CommandLine.Option getOption(java.lang.String optionName, java.lang.reflect.Method m)
-
getSynopsis
private java.lang.String getSynopsis(java.lang.String cmd, java.util.Map<java.lang.String,java.lang.reflect.Method> options, Arguments patterns)
-
lastPart
private static java.lang.String lastPart(java.lang.String name)
-
help
public void help(java.util.Formatter f, java.lang.Object target) throws java.lang.ExceptionShow all commands in a target- Throws:
java.lang.Exception
-
help
public void help(java.util.Formatter f, java.lang.Object target, java.lang.String cmd)Show the full help for a given command
-
getCommands
public java.util.Map<java.lang.String,java.lang.reflect.Method> getCommands(java.lang.Object target)
Parse a class and return a list of command names- Parameters:
target-- Returns:
- command names
-
isMandatory
private boolean isMandatory(java.lang.reflect.Method m)
Answer if the method is marked mandatory
-
isOption
private boolean isOption(java.lang.reflect.Method m)
- Parameters:
m-
-
getTypeDescriptor
private java.lang.String getTypeDescriptor(java.lang.reflect.Type type)
Show a type in a nice way
-
getResult
public java.lang.Object getResult()
-
subCmd
public java.lang.String subCmd(Options opts, java.lang.Object target) throws java.lang.Exception
- Throws:
java.lang.Exception
-
-