-
- Type Parameters:
T
- the generic type
- All Superinterfaces:
org.refcodes.mixin.AliasAccessor
,ArgsAccessor
,org.refcodes.mixin.Clonable
,Cloneable
,Comparable<Operand<?>>
,org.refcodes.mixin.DescriptionAccessor
,org.refcodes.component.Resetable
,Synopsis
,Syntaxable
,org.refcodes.mixin.TypeAccessor<T>
,org.refcodes.mixin.ValueAccessor<T>
- All Known Subinterfaces:
Option<T>
- All Known Implementing Classes:
AbstractOperand
,AbstractOption
,ArrayOperand
,ArrayOption
,CharOption
,CleanFlag
,ConfigOption
,DaemonFlag
,DebugFlag
,DoubleOption
,EnumOption
,FileOption
,Flag
,FloatOption
,ForceFlag
,HelpFlag
,InitFlag
,IntOption
,LongOption
,NoneOperand
,Operation
,QuietFlag
,StringOperand
,StringOption
,SysInfoFlag
,VerboseFlag
public interface Operand<T> extends org.refcodes.mixin.ValueAccessor<T>, org.refcodes.mixin.DescriptionAccessor, org.refcodes.mixin.TypeAccessor<T>, Syntaxable, ArgsAccessor, Comparable<Operand<?>>, org.refcodes.mixin.AliasAccessor, Cloneable, org.refcodes.mixin.Clonable
AnOperand
represents a value parsed from command line arguments. In comparison to anOption
anOperand
just represents a plain value without an identifier in front of it. AnOperand
has a state which changes with each invocation of theSyntaxable.parseArgs(String[], String[])
method.It is recommended to put your
Operand
instance(s) at the end of your topArgsSyntax
to enforce it to be the lastSyntaxable
(s) when parsing the command line arguments - this makes sure that anyOption
s pick their option arguments so that theOperand
(s) will correctly be left over for parsing command line argument(s); theOperand
will not pick by mistake an option argument.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.refcodes.mixin.AliasAccessor
org.refcodes.mixin.AliasAccessor.AliasBuilder<B extends org.refcodes.mixin.AliasAccessor.AliasBuilder<B>>, org.refcodes.mixin.AliasAccessor.AliasMutator, org.refcodes.mixin.AliasAccessor.AliasProperty
-
Nested classes/interfaces inherited from interface org.refcodes.cli.ArgsAccessor
ArgsAccessor.ArgsMutator, ArgsAccessor.ArgsProperty
-
Nested classes/interfaces inherited from interface org.refcodes.mixin.DescriptionAccessor
org.refcodes.mixin.DescriptionAccessor.DescriptionBuilder<B extends org.refcodes.mixin.DescriptionAccessor.DescriptionBuilder<B>>, org.refcodes.mixin.DescriptionAccessor.DescriptionMutator, org.refcodes.mixin.DescriptionAccessor.DescriptionProperty
-
Nested classes/interfaces inherited from interface org.refcodes.mixin.TypeAccessor
org.refcodes.mixin.TypeAccessor.TypeBuilder<T extends Object,B extends org.refcodes.mixin.TypeAccessor.TypeBuilder<T,B>>, org.refcodes.mixin.TypeAccessor.TypeMutator<T extends Object>, org.refcodes.mixin.TypeAccessor.TypeProperty<T extends Object>
-
Nested classes/interfaces inherited from interface org.refcodes.mixin.ValueAccessor
org.refcodes.mixin.ValueAccessor.ValueBuilder<V extends Object,B extends org.refcodes.mixin.ValueAccessor.ValueBuilder<V,B>>, org.refcodes.mixin.ValueAccessor.ValueMutator<V extends Object>, org.refcodes.mixin.ValueAccessor.ValueProperty<V extends Object>
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description String
getAlias()
String[]
getArgs()
Retrieves the command line arguments from the args property.T
getValue()
default boolean
hasValue()
When being parsed via theSyntaxable.parseArgs(String[], String[])
method, use this method to determine whether thegetValue()
method contains parsed value.default <V> V
toValue(String aAlias)
Searches for a value being set for the given for given alias in the syntax tree parsing the command line arguments; if a node in the syntax tree has a value for the given alias, then this value is returned.-
Methods inherited from interface java.lang.Comparable
compareTo
-
Methods inherited from interface org.refcodes.cli.Synopsis
toSynopsis, toSynopsis, toSynopsis, toSynopsis
-
-
-
-
Method Detail
-
hasValue
default boolean hasValue()
When being parsed via theSyntaxable.parseArgs(String[], String[])
method, use this method to determine whether thegetValue()
method contains parsed value.- Returns:
- The true in case there a value has been parsed via the
Syntaxable.parseArgs(String[], String[])
method.
-
getArgs
String[] getArgs()
Retrieves the command line arguments from the args property.- Specified by:
getArgs
in interfaceArgsAccessor
- Returns:
- The command line arguments stored by the args property.
-
getAlias
String getAlias()
Retrieves the name (alias) of the parameter value which can be the name of the operand (Operand
) or the option argument (Option
), depending on the sub-type inheriting from this interface. The parameter name is merely used for constructing the command line arguments syntaxString
viaSyntaxable.toSyntax(SyntaxNotation, String, String, String)
and the command line arguments detail description when creating a command line tool's help output. Attention: The alias can also be used as a key when putting anOperand
's key/value-pair into a dictionary such as is done by theRuntimeProperties
type provided by therefcodes-properties-ext-runime
artifact!- Specified by:
getAlias
in interfaceorg.refcodes.mixin.AliasAccessor
- Returns:
- The name of the parameter, e.g the name of the operand or the name of the option argument.
-
toValue
default <V> V toValue(String aAlias)
Searches for a value being set for the given for given alias in the syntax tree parsing the command line arguments; if a node in the syntax tree has a value for the given alias, then this value is returned.- Specified by:
toValue
in interfaceSyntaxable
- Type Parameters:
V
- The type of the value being expected.- Parameters:
aAlias
- The alias for which to seek for a value being set.- Returns:
- The according value or null if none has been set for the given alias.
-
-