java.lang.Object
org.refcodes.cli.AbstractCondition
org.refcodes.cli.XorCondition
org.refcodes.cli.CasesCondition
- All Implemented Interfaces:
Condition
,MatchCountAccessor
,Synopsisable
,Term
,org.refcodes.exception.ExceptionAccessor<ArgsSyntaxException>
,org.refcodes.mixin.ChildrenAccessor<Term[]>
,org.refcodes.mixin.DescriptionAccessor
,org.refcodes.mixin.Resetable
,org.refcodes.mixin.Schemable
The
CasesCondition
is an XorCondition
making sure that all
possible cases inside the XorCondition
must(!) consume all provided
args in order to match! This makes the CasesCondition
most useful as
a root condition with exotic (possibly ambiguous) cases encapsulated.-
Nested Class Summary
Nested classes/interfaces inherited from interface org.refcodes.mixin.ChildrenAccessor
org.refcodes.mixin.ChildrenAccessor.ChildrenBuilder<T extends Object,
B extends org.refcodes.mixin.ChildrenAccessor.ChildrenBuilder<T, B>>, org.refcodes.mixin.ChildrenAccessor.ChildrenMutator<T extends Object>, org.refcodes.mixin.ChildrenAccessor.ChildrenProperty<T extends Object> 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.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.MatchCountProperty
-
Field Summary
Fields inherited from class org.refcodes.cli.AbstractCondition
_children
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionRetrieves theArgsSyntaxException
exception in case invokingTerm.parseArgs(String[], CliContext)
failed.protected static String[]
toArgsDiff
(String[] aArgs, String[] aArgsSubset) Creates the difference between the provided set and the provided subset.protected static String[]
toArgsDiff
(String[] aArgs, List<? extends Operand<?>> aArgsSubset) Creates the difference between the provided set and the providedList
s therein found argument arrays subset (as ofOperand.getArgs()
).protected static String[]
toParsedArgs
(List<? extends Operand<?>>... aOperands) Takes allOperand
instances found in the providedList
s and adds all therein found argument arrays (as ofOperand.getArgs()
) to the result.Methods inherited from class org.refcodes.cli.XorCondition
parseArgs, toSynopsis
Methods inherited from class org.refcodes.cli.AbstractCondition
getChildren, getMatchCount, reset, toOperand, toOperands, toSchema, toString, toSyntax, toValue
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.refcodes.mixin.ChildrenAccessor
getChildren
Methods inherited from interface org.refcodes.cli.Condition
hasChild, isChild, toConditions, toOperand, toOperand, toOperand, toOperands, toOperands
Methods inherited from interface org.refcodes.mixin.DescriptionAccessor
getDescription
Methods inherited from interface org.refcodes.mixin.Resetable
reset
Methods inherited from interface org.refcodes.cli.Synopsisable
toSynopsis, toSynopsis, toSynopsis, toSynopsis
Methods inherited from interface org.refcodes.cli.Term
getException, getMatchCount, parseArgs, parseArgs, toSchema, toSynopsis, toSyntax, toSyntax, toSyntax, toSyntax, toSyntax, toValue
-
Field Details
-
_description
-
_exception
-
-
Constructor Details
-
Method Details
-
getDescription
- Specified by:
getDescription
in interfaceorg.refcodes.mixin.DescriptionAccessor
-
getException
Retrieves theArgsSyntaxException
exception in case invokingTerm.parseArgs(String[], CliContext)
failed. The exception (and the according suppressed ones alongside the causes) does not necessarily have been thrown by theTerm.parseArgs(String[], CliContext)
method depending on the semantics of theTerm
handing the exception (theAnyCondition
provides any exceptions it caught even though it did not throw them as of its semantics).- Specified by:
getException
in interfaceorg.refcodes.exception.ExceptionAccessor<ArgsSyntaxException>
- Specified by:
getException
in interfaceTerm
- Returns:
- The
ArgsSyntaxException
exception occurring while parsing the arguments.
-
toArgsDiff
Creates the difference between the provided set and the providedList
s therein found argument arrays subset (as ofOperand.getArgs()
).- Parameters:
aArgs
- The set to be used for the diff operation.aArgsSubset
- The subset to be used for the diff operation being the lists containing theOperand
instances whose command line arguments are to be diffed.- Returns:
- The difference between the set and the subset.
-
toArgsDiff
Creates the difference between the provided set and the provided subset.- Parameters:
aArgs
- The set to be used for the diff operation.aArgsSubset
- The subset to be used for the diff operation.- Returns:
- The difference between the set and the subset.
-
toParsedArgs
Takes allOperand
instances found in the providedList
s and adds all therein found argument arrays (as ofOperand.getArgs()
) to the result.
-