Module org.refcodes.cli
Package org.refcodes.cli
package org.refcodes.cli
This artifact defines some helpful toolkit to parse your command line
arguments (as passed to your
public static void main( String[] args) { ... }
method. It lets
you define the exact valid combinations of command line arguments, it parses
them arguments for you and it lets you print the syntax as you
programmatically defined it. Let's get started!
Please refer to the refcodes-cli: Parse your args[] documentation for an up-to-date and detailed description on the usage of this artifact.
-
ClassDescriptionThe
AbstractCondition
is an abstract implementation of theArgsSyntax
interface providing the boiler plate when implementing theArgsSyntax
interface as done by theAbstractCondition
's sub-classes.TheAbstractOperand
is an abstract implementation of anOperand
providing the boiler plate when implementing theOperand
interface.TheAbstractOption
is an abstract implementation of anOption
providing the boiler plate when implementing theOption
interface.TheAllCondition
enforces that the encapsulatedSyntaxable
consumes all arguments passed via invoking itsSyntaxable.parseArgs(String[])
, else aSuperfluousArgsException
is thrown.Thrown in case the command line arguments do not match the required syntax.AnAndCondition
contains (represents) a list ofArgsSyntax
(Syntaxable
) instances (nested by theAndCondition
) of which all are to be parsed successfully as of invoking theSyntaxable.parseArgs(String[], String[])
methods.Any of the nestedArgsSyntax
conditions may match for theAnyCondition
to match, e.g. all of the nested conditions are optional.Provides an accessor for a command line arguments (short "args") array.Provides a mutator for a args property.Provides a args property.TheArgsParser
provides means for parsing command line arguments and constructing a command line utility's help output.Provides an accessor for aArgsParser
property.Provides a builder method for aArgsParser
property returning the builder for applying multiple build operations.Provides a mutator for aArgsParser
property.Provides aArgsParser
property.A straightforward implementation of theArgsParser
interface.ArgsParserMixin<B extends ArgsParserMixin<B>>This mixin provides builder additions (as of the builder pattern for chained configuring method calls) for parsing command line arguments.TheArgsSyntax
interface represents a node (and therewith the syntax for the arguments) in the command line arguments syntax tree; simply extending theSyntaxable
interface and adding the functionality of providing access to the addedOperand
s (leafs).Thrown in case of a command line arguments mismatch regarding provided and expected args.ArrayOperand<T>Creates an array representation facade for the encapsulatedOperand
.ArrayOption<T>Creates an array representation facade for the encapsulatedOption
.TheCasesCondition
is anXorCondition
making sure that all possible cases inside theXorCondition
must(!)A predefined cleanFlag
: A predefinedFlag
gives itsCleanFlag.SHORT_OPTION
, itsCleanFlag.LONG_OPTION
as well as itsCleanFlag.ALIAS
an according semantics regarded by other subsystems.Base exception for the console artifact.This abstract exception is the base exception for all command line argument related exceptions.The Class ConsoleCliException.The purpose of aCliSchema
is automatically generate documentation ofSyntaxable
structures.Declarative syntactic sugar which may be statically imported in order to allow declarative definitions for the command lineFlag
,ArgsSyntax
,Option
andOperand
elements.This utility class provides method useful for the refcodes-cli artifact and whose implementation has been motivated by the implementation of the refcodes-cli artifact.Interface indicating that theArgsSyntax
semantically represents a condition which usally encapsulates otherSyntaxable
children.TheConfigOption
represents anOption
holding a value specifying a configuration resource (file).A predefined daemonFlag
: A predefinedFlag
gives itsDaemonFlag.SHORT_OPTION
, itsDaemonFlag.LONG_OPTION
as well as itsDaemonFlag.ALIAS
an according semantics regarded by other subsystems.A predefined debugFlag
: A predefinedFlag
gives itsDebugFlag.SHORT_OPTION
, itsDebugFlag.LONG_OPTION
as well as itsDebugFlag.ALIAS
an according semantics regarded by other subsystems.EnumOption<T extends Enum<T>>The Class EnumOption.An example usage item describing a usage scenario.TheFlag
class implements theOption
interface for representing either atrue
or afalse
state: When a flag is provided to your command line arguments, then it is considered to betrue
, when it is omitted, then it is considered to befalse
as ofFlag.isEnabled()
.A predefined forceFlag
: A predefinedFlag
gives itsForceFlag.SHORT_OPTION
, itsForceFlag.LONG_OPTION
as well as itsForceFlag.ALIAS
an according semantics regarded by other subsystems.A predefined helpFlag
: A predefinedFlag
gives itsHelpFlag.SHORT_OPTION
, itsHelpFlag.LONG_OPTION
as well as itsHelpFlag.ALIAS
an according semantics regarded by other subsystems.A predefined initFlag
: A predefinedFlag
gives itsInitFlag.SHORT_OPTION
, itsInitFlag.LONG_OPTION
as well as itsInitFlag.ALIAS
an according semantics regarded by other subsystems.TheNoneOperand
represents an empty set of arguments, e.g. no command line argument is being passed.Operand<T>AnOperand
represents a value parsed from command line arguments.TheOperation
is an argument representing a function or a method ("command") and is either provided or not provided as ofOperation.isEnabled()
.Option<T>AnOption
represents a command line option with the according option's value.AnOrCondition
represents a list ofArgsSyntax
(Syntaxable
) instances of which at least one must be parsed successfully when theSyntaxable
s'Syntaxable.parseArgs(String[], String[])
methods are invoked.Thrown in case the provided command line arguments do not respect the required semantics or cannot be converted to the required type.A predefined "be quiet"Flag
: A predefinedFlag
gives itsQuietFlag.SHORT_OPTION
, itsQuietFlag.LONG_OPTION
as well as itsQuietFlag.ALIAS
an according semantics regarded by other subsystems.Provides an accessor for a root condition property.Provides a builder method for a root condition property returning the builder for applying multiple build operations.Provides a mutator for a root condition property.Provides a root condition property.Thrown in case there were arguments found not being used (superfluous arguments).TheSynopsisable
interface defines those methods required to create a human readable usageString
similar to a manpage's synopsis from the implementing instance.ASyntaxable
defines the methods at least required when building a command line arguments syntax tree for traversing the syntax tree; either for parsing command line arguments or for constructing the command line arguments syntax.TheSyntaxNotation
is used by a theSyntaxable.toSyntax(SyntaxNotation, String, String, String)
method to determine which notation to be used for the generated syntax.A predefined system informationFlag
: A predefinedFlag
gives itsSysInfoFlag.SHORT_OPTION
, itsSysInfoFlag.LONG_OPTION
as well as itsSysInfoFlag.ALIAS
an according semantics regarded by other subsystems..Thrown in case command line arguments were not processed (did not match the expected arguments), e.g. the arguments were rejected as them did not work for the according syntax.A predefined verboseFlag
: A predefinedFlag
gives itsVerboseFlag.SHORT_OPTION
, itsVerboseFlag.LONG_OPTION
as well as itsVerboseFlag.ALIAS
an according semantics regarded by other subsystems.AnXorCondition
represents a list ofArgsSyntax
(Syntaxable
) instances of which only one is allowed to be parsed successfully when theSyntaxable.parseArgs(String[], String[])
methods are invoked.