Package spoon.pattern.internal.node
Class ConstantNode<T>
java.lang.Object
spoon.pattern.internal.node.AbstractNode
spoon.pattern.internal.node.ConstantNode<T>
- All Implemented Interfaces:
Matchers,PrimitiveMatcher,RepeatableMatcher,RootNode
Generates/Matches a copy of single template object
-
Field Summary
FieldsFields inherited from interface spoon.pattern.internal.node.RootNode
MATCH_ALL, MATCH_PART -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidforEachParameterInfo(BiConsumer<ParameterInfo,RootNode> consumer)Calls consumer for each pair of parameter definition (ParameterInfo) andRootNode, which uses it<U> voidgenerateTargets(DefaultGenerator generator, ResultHolder<U> result, ImmutableMap parameters)Generates zero, one or more target depending on kind of thisRootNode, expected `result` and input `parameters`If twoRepeatableMatchers in a list are matching the same element, then returnedQuantifierdefines how resolve this conflictbooleanisTryNextMatch(ImmutableMap parameters)matchAllWith(TobeMatched tobeMatched)Matches all matchers of thisMatchersinstance with `targets`matchTarget(Object target, ImmutableMap parameters)matchTargets(TobeMatched targets, Matchers next)booleanreplaceNode(RootNode oldNode, RootNode newNode)Call it to modify Pattern structure.toString()Methods inherited from class spoon.pattern.internal.node.AbstractNode
isSimplifyGenerated, setSimplifyGeneratedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface spoon.pattern.internal.node.RepeatableMatcher
isMandatory, isRepeatableMethods inherited from interface spoon.pattern.internal.node.RootNode
isSimplifyGenerated, matchTargets, setSimplifyGenerated
-
Field Details
-
template
-
-
Constructor Details
-
ConstantNode
-
-
Method Details
-
getTemplateNode
-
replaceNode
Description copied from interface:RootNodeCall it to modify Pattern structure. It is actually called mainly by PatternBuilder. TODO: May be we can move this method into some internal interface? -
forEachParameterInfo
Description copied from interface:RootNodeCalls consumer for each pair of parameter definition (ParameterInfo) andRootNode, which uses it- Parameters:
consumer- the receiver of pairs ofParameterInfoandRootNode
-
generateTargets
public <U> void generateTargets(DefaultGenerator generator, ResultHolder<U> result, ImmutableMap parameters)Description copied from interface:RootNodeGenerates zero, one or more target depending on kind of thisRootNode, expected `result` and input `parameters`- Parameters:
generator-Generatorwhich drives generation processresult- holder for the generated objectsparameters- aImmutableMapholding parameters
-
matchTarget
- Parameters:
target- - to be matched elementparameters- will receive the matching parameter values- Returns:
- true if `element` matches with pattern of this matcher
-
toString
- Overrides:
toStringin classAbstractNode
-
getMatchingStrategy
Description copied from interface:RepeatableMatcherIf twoRepeatableMatchers in a list are matching the same element, then returnedQuantifierdefines how resolve this conflict- Returns:
Quantifier
-
isTryNextMatch
- Parameters:
parameters- matching parameters- Returns:
- true if this ValueResolver should be processed again to match next target in the state defined by current `parameters`.
-
matchAllWith
Description copied from interface:MatchersMatches all matchers of thisMatchersinstance with `targets`- Specified by:
matchAllWithin interfaceMatchers- Specified by:
matchAllWithin interfaceRootNode- Parameters:
tobeMatched- to be matched target nodes and input parameters- Returns:
TobeMatchedwith targets which remained after allRootNodes were matched + matched parameters
-
matchTargets
- Specified by:
matchTargetsin interfaceRootNode- Parameters:
targets- to be matched target nodes and input parametersnext- Chain of matchers which has to be processed after thisRootNode- Returns:
- new parameters and container with remaining targets
-