See: Description
Interface | Description |
---|---|
CliModeObject |
This is a container for a
CliMode together with additional associated information. |
CliParser |
This is the interface used to
parse the command-line arguments of a
main-program. |
CliParserBuilder |
Class | Description |
---|---|
AbstractMain |
This is the abstract base class for a main-program.
|
AbstractVersionedMain |
This is the abstract base class for a
main-program that has a version. |
CliOptionNameDefaultFilter | |
CliOutputSettings |
This class represents the settings for the
help
output . |
Enum | Description |
---|---|
CliContainerStyle |
This enum contains the available styles for container types.
|
CliStyleHandling |
This enum contains the available ways to handle a specific CLI-style.
|
Annotation Type | Description |
---|---|
CliArgument |
A
CliArgument is used to annotate a property (member variable of some class or setter-method) that
should be set from a main-program via a commandline argument. |
CliClass |
A
CliClass is used to annotate a Java-class that holds the parameters of a main-program that are
parsed from the commandline arguments. |
CliMode |
A
CliMode is used to annotate a CLI annotated class in order to define a
operational mode. |
CliModes | |
CliOption |
A
CliOption is used to annotate a property (member variable of some class or setter-method) that
should be set from a main-program via a commandline option. |
CliStyle |
A
CliStyle is used to annotated a Java-class that holds the parameters of a main-program that are
parsed from the commandline arguments. |
public static void main(String[] args)However you quickly notice that this was NOT the end of wisdom when designing an object-oriented language as java. A main-program often starts easy and then over the time options and arguments are added. When you want to write a maintainable main-program you want to have more infrastructure than just having a string-array lost in a static method.
AbstractMain
and
AbstractVersionedMain
that you can extend to build your main program.
For each option
and
argument
there are Annotation
s to annotate
your regular Field
s. Via CliMode
multiple modes can be
defined to realize complex scenarios. Everything integrates with javax.validation
(BV) and our excellent
native-language-support
including
text wrapping
and
hyphenation
. So you do not have to maintain any usage or help output that
is all done for you.
@CliMode
(id =CliMode.ID_DEFAULT
, usage = NlsBundleMyExampleRoot.MSG_MAIN_MODE_USAGE_DEFAULT) public class MyCoolMain extendsAbstractVersionedMain
{ @CliOption
(name = "--flag", aliases = "-f", usage = NlsBundleMyExampleRoot.MSG_MAIN_OPTION_FLAG) private boolean flag; @Override
public intrunDefaultMode()
{ if (this.flag) { // ... do this ... } else { // ... do that ... } } public static void main(String[] args) { new MyCoolMain().runAndExit
(args); } }
String[] args
). Such parameter is
either an option
or a
value. A value can belong to an option
or an argument
.
E.g. the parameters --port 8080 start
consist of the option --port
with its value 8080
and the argument start
.Copyright © 2001–2014 mmm-Team. All rights reserved.