- java.lang.Object
-
- org.refcodes.cli.AbstractCondition
-
- All Implemented Interfaces:
ArgsSyntax,Condition,Synopsis,Syntaxable,org.refcodes.component.Resetable
- Direct Known Subclasses:
AllCondition,AndCondition,AnyCondition,OptionCondition,OrCondition,XorCondition
public abstract class AbstractCondition extends Object implements Condition
TheAbstractConditionis an abstract implementation of theArgsSyntaxinterface providing the boiler plate when implementing theArgsSyntaxinterface as done by theAbstractCondition's sub-classes.
-
-
Constructor Summary
Constructors Constructor Description AbstractCondition(Syntaxable... aElements)Instantiates a new abstract condition.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidaddChild(Syntaxable aArgumentizer)Adds the child.protected List<Syntaxable>getChildren()Gets the children.protected SyntaxablegetFirst()Gets the first child.voidreset()<T extends Operand<?>>
TtoOperand(String aAlias, Class<T> aType)Traverses the hierarchy ofArgsSyntaxtree and returns the (first) operand matching the given alias and type.List<Operand<?>>toOperands()Traverses the hierarchy ofArgsSyntaxs and collects all therein foundOperands and sub-types such as theFlagor theOption.StringtoString()StringtoSynopsis(SyntaxNotation aSyntaxNotation, String aOptEscCode, String aParamEscCode, String aResetEscCode)Returns the human readable (verbose) syntax of implementing class ATTENTION: As of different parenthesis settings for some notations regarding the rootSyntaxableand the childSyntaxables, the methodSyntaxable.toSyntax(SyntaxNotation, String, String, String)is called from inside aSyntaxablehierarchy.StringtoSyntax(SyntaxNotation aSyntaxNotation, String aOptEscCode, String aParamEscCode, String aResetEscCode)This method is to be called from inside theSyntaxablehierarchy; use the methodSynopsis.toSynopsis(SyntaxNotation)in case you invoke syntax retrieval from the rootSyntaxable.<V> VtoValue(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 class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.refcodes.cli.ArgsSyntax
toOperand, toOperand
-
Methods inherited from interface org.refcodes.cli.Synopsis
toSynopsis, toSynopsis, toSynopsis, toSynopsis
-
-
-
-
Constructor Detail
-
AbstractCondition
public AbstractCondition(Syntaxable... aElements)
Instantiates a new abstract condition.- Parameters:
aElements- the elements
-
-
Method Detail
-
toSyntax
public String toSyntax(SyntaxNotation aSyntaxNotation, String aOptEscCode, String aParamEscCode, String aResetEscCode)
This method is to be called from inside theSyntaxablehierarchy; use the methodSynopsis.toSynopsis(SyntaxNotation)in case you invoke syntax retrieval from the rootSyntaxable. Returns the human readable (verbose) syntax of thisSyntaxableinstance including, in case of being a node in the syntax tree (such as aArgsSyntax, the syntax of the childSyntaxableinstances. ATTENTION: As of different parenthesis settings for some notations regarding the rootSyntaxableand the childSyntaxables, the methodSyntaxable.toSyntax(SyntaxNotation, String, String, String)is called from inside theSyntaxablehierarchy. In case the syntax is to be retrieved from the rootSyntaxable, then the applicable method to be called isSynopsis.toSynopsis(SyntaxNotation), as for some notations it will for example not create the most outer braces.- Specified by:
toSyntaxin interfaceSyntaxable- Parameters:
aSyntaxNotation- The syntax notation used for generating the command line arguments syntax.aOptEscCode- The escape code to be used when processing an option, e.g. this can be an ANSI Escape-Code to highlight the option.aParamEscCode- The escape code to be used when processing a keyword, e.g. this can be an ANSI Escape-Code to highlight the option and/or parameters.aResetEscCode- The escape code to close (reset) any Escape-Code being set before.- Returns:
- The human readable (verbose) command line arguments syntax.
-
reset
public void reset()
- Specified by:
resetin interfaceorg.refcodes.component.Resetable
-
toOperands
public List<Operand<?>> toOperands()
Traverses the hierarchy ofArgsSyntaxs and collects all therein foundOperands and sub-types such as theFlagor theOption. This is most useful when creating a list ofOptions,Flages andOperands when printing out detailed help.- Specified by:
toOperandsin interfaceArgsSyntax- Returns:
- The according
Operandelements.
-
getChildren
protected List<Syntaxable> getChildren()
Gets the children.- Returns:
- the children
-
getFirst
protected Syntaxable getFirst()
Gets the first child. It is up to the developer to make sure that there actually is(!) a child!- Returns:
- the first child.
-
addChild
protected void addChild(Syntaxable aArgumentizer)
Adds the child.- Parameters:
aArgumentizer- the argumentizer
-
toValue
public <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:
toValuein 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.
-
toOperand
public <T extends Operand<?>> T toOperand(String aAlias, Class<T> aType)
Traverses the hierarchy ofArgsSyntaxtree and returns the (first) operand matching the given alias and type.- Specified by:
toOperandin interfaceArgsSyntax- Type Parameters:
T- the generic type- Parameters:
aAlias- The alias for which to seek for.aType- The type for which to seek for.- Returns:
- The according
Operandelement or null if none matching was found
-
toSynopsis
public String toSynopsis(SyntaxNotation aSyntaxNotation, String aOptEscCode, String aParamEscCode, String aResetEscCode)
Returns the human readable (verbose) syntax of implementing class ATTENTION: As of different parenthesis settings for some notations regarding the rootSyntaxableand the childSyntaxables, the methodSyntaxable.toSyntax(SyntaxNotation, String, String, String)is called from inside aSyntaxablehierarchy. In case the syntax is to be retrieved from the rootSyntaxableor an encapsulating and different type, then the applicable method to be called isSynopsis.toSynopsis(SyntaxNotation), as for some notations it will for example not create the most outer braces.- Specified by:
toSynopsisin interfaceSynopsis- Parameters:
aSyntaxNotation- The syntax notation used for generating the command line arguments syntax.aOptEscCode- The escape code to be used when processing an option, e.g. this can be an ANSI Escape-Code to highlight the option.aParamEscCode- The escape code to be used when processing am argument, e.g. this can be an ANSI Escape-Code to highlight the option.aResetEscCode- The escape code to close (reset) any Escape-Code being set before.- Returns:
- The human readable (verbose) command line arguments syntax.
-
-