- Type Parameters:
T- The generic type of theOperand's value.
- All Superinterfaces:
org.refcodes.mixin.AliasAccessor,org.refcodes.mixin.Clonable,Cloneable,Comparable<Operand<?>>,org.refcodes.mixin.DescriptionAccessor,org.refcodes.exception.ExceptionAccessor<ArgsSyntaxException>,MatchCountAccessor,ParsedArgsAccessor,org.refcodes.mixin.Resetable,org.refcodes.mixin.Schemable,Synopsisable,Term,org.refcodes.mixin.TypeAccessor<T>,org.refcodes.mixin.ValueAccessor<T>
- All Known Subinterfaces:
Option<T>,PropertyOption<T>
- All Known Implementing Classes:
AbstractOperand,AbstractOption,AbstractPropertyOption,ArrayOperand,ArrayOption,BooleanOption,BooleanProperty,CharOption,CharProperty,CleanFlag,ConfigOption,ConfigProperty,DaemonFlag,DebugFlag,DoubleOption,DoubleProperty,EnumOption,EnumProperty,FileOption,FileProperty,Flag,FloatOption,FloatProperty,ForceFlag,HelpFlag,InitFlag,IntOption,IntProperty,LongOption,LongProperty,NoneOperand,Operation,QuietFlag,StringOperand,StringOption,StringProperty,SysInfoFlag,VerboseFlag
public interface Operand<T>
extends Term, org.refcodes.mixin.ValueAccessor<T>, org.refcodes.mixin.TypeAccessor<T>, ParsedArgsAccessor, Comparable<Operand<?>>, org.refcodes.mixin.AliasAccessor, Cloneable, org.refcodes.mixin.Clonable
An
Operand represents a value parsed from command line arguments. In
comparison to an Option an Operand just represents a plain
value without an identifier in front of it. An Operand has a state
which changes with each invocation of the
Term.parseArgs(String[], String[], CliContext) method.
It is recommended to put your Operand instance(s) at the end of your
top Condition to enforce it to be the last Term(s) when
parsing the command line arguments - this makes sure that any Options
pick their option arguments so that the Operand(s) will correctly be
left over for parsing command line argument(s); the Operand 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.AliasPropertyNested 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.DescriptionPropertyNested classes/interfaces inherited from interface org.refcodes.exception.ExceptionAccessor
org.refcodes.exception.ExceptionAccessor.ExceptionBuilder<EXC extends Throwable,B extends org.refcodes.exception.ExceptionAccessor.ExceptionBuilder<EXC, B>>, org.refcodes.exception.ExceptionAccessor.ExceptionMutator<EXC extends Throwable>, org.refcodes.exception.ExceptionAccessor.ExceptionProperty<EXC extends Throwable> Nested classes/interfaces inherited from interface org.refcodes.cli.MatchCountAccessor
MatchCountAccessor.MatchCountBuilder<B extends MatchCountAccessor.MatchCountBuilder<B>>, MatchCountAccessor.MatchCountMutator, MatchCountAccessor.MatchCountPropertyNested classes/interfaces inherited from interface org.refcodes.cli.ParsedArgsAccessor
ParsedArgsAccessor.ParsedArgsMutator, ParsedArgsAccessor.ParsedArgsPropertyNested 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
Modifier and TypeMethodDescriptiongetAlias()String[]Retrieves the (command line) args which represent thisOperandafter being "parsed" (provided with command line args).getValue()default booleanhasValue()When being parsed via theTerm.parseArgs(String[], String[], CliContext)method, use this method to determine whether thegetValue()method contains parsed value.default StringtoSpec()Creates a specification for thisOperandand its arguments.default StringtoSpec(CliContext aCliContext) Creates a specification for thisOperandand its arguments.default StringtoUsage()Creates a specification for thisOperand, helpful e.g. in human readable messages.default StringtoUsage(CliContext aCliContext) Creates a specification for thisOperand, helpful e.g. in human readable messages.default <V> VSearches 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 org.refcodes.mixin.Clonable
cloneMethods inherited from interface java.lang.Comparable
compareToMethods inherited from interface org.refcodes.mixin.DescriptionAccessor
getDescriptionMethods inherited from interface org.refcodes.mixin.Resetable
resetMethods inherited from interface org.refcodes.cli.Synopsisable
toSynopsis, toSynopsis, toSynopsis, toSynopsisMethods inherited from interface org.refcodes.cli.Term
getException, getMatchCount, parseArgs, parseArgs, toSchema, toSynopsis, toSyntax, toSyntax, toSyntax, toSyntax, toSyntaxMethods inherited from interface org.refcodes.mixin.TypeAccessor
getTypeMethods inherited from interface org.refcodes.mixin.ValueAccessor
getValueOr
-
Method Details
-
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 syntaxStringviaTerm.toSyntax(CliContext)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 theApplicationPropertiestype provided by therefcodes-properties-ext-runimeartifact!- Specified by:
getAliasin interfaceorg.refcodes.mixin.AliasAccessor- Returns:
- The name of the parameter, e.g the name of the operand or the name of the option argument.
-
getValue
T getValue()- Specified by:
getValuein interfaceorg.refcodes.mixin.ValueAccessor<T>
-
hasValue
default boolean hasValue()When being parsed via theTerm.parseArgs(String[], String[], CliContext)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
Term.parseArgs(String[], String[], CliContext)method.
-
getParsedArgs
String[] getParsedArgs()Retrieves the (command line) args which represent thisOperandafter being "parsed" (provided with command line args).- Specified by:
getParsedArgsin interfaceParsedArgsAccessor- Returns:
- The according args from the command line args.
-
toUsage
Creates a specification for thisOperand, helpful e.g. in human readable messages. The specification is created using a plain (default)CliContextinstance, for fine grained control on the specification, use a dedicatedCliContextinstance and invoketoUsage(CliContext).- Returns:
- The according usage text.
-
toUsage
Creates a specification for thisOperand, helpful e.g. in human readable messages.- Parameters:
aCliContext- TheCliContextto use when creating a beautiful usage text.- Returns:
- The according usage text.
-
toSpec
Creates a specification for thisOperandand its arguments.- Returns:
- The according specification text.
-
toSpec
Creates a specification for thisOperandand its arguments.- Parameters:
aCliContext- TheCliContextto use when creating a beautiful specification text.- Returns:
- The according specification text.
-
toValue
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.
-