Interface IResolutionTargetDecider
-
- All Known Implementing Classes:
AbstractDecider
,ConcreteClassifierDecider
,EnumConstantDecider
,FieldDecider
,InterfaceMethodDecider
,LocalVariableDecider
,MethodDecider
,PackageDecider
,ParameterDecider
,TypeParameterDecider
public interface IResolutionTargetDecider
A visitor that determines during a scoped tree traversal if an element is the target. A decider can also influence the traversal itself at certain points to adjust the scoping rules for its needs. A decider can maintain a state for one traversal process.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
activate()
Activates this decider.boolean
canFindTargetsFor(EObject referenceContainer, EReference crossReference)
Determines if the decider is of any use for the given resolving procedure.boolean
containsCandidates(EObject container, EReference containingReference)
Determines if the decider needs to look into the given reference.boolean
continueAfterReference()
Defines, if the scoping for this decider allows to look behind the point where the reference, for which the target is searched, was defined.void
deactivate()
Deactivates this decider.EList<? extends EObject>
getAdditionalCandidates(String identifier, EObject container)
Allows for the decider to provide additional target candidates that are not directly contained in the traversed model tree.boolean
isActive()
Indicates if this decider is active.boolean
isPossibleTarget(String identifier, EObject element)
Decides if the given element is a (possibly the final) target.boolean
isSure()
Should return true, if the last timeisPossibleTarget()
returned true was the final decision (i.e., traversal can be stopped).void
reset()
Resets the state of the decider before a complete new walk takes place.boolean
walkInto(EObject element)
Determines if references given element, which is a child of the elements visited by default in the tree traversing, should also be considered.
-
-
-
Method Detail
-
canFindTargetsFor
boolean canFindTargetsFor(EObject referenceContainer, EReference crossReference)
Determines if the decider is of any use for the given resolving procedure.- Parameters:
referenceContainer
-crossReference
-- Returns:
- decision
-
containsCandidates
boolean containsCandidates(EObject container, EReference containingReference)
Determines if the decider needs to look into the given reference.- Parameters:
container
-containingReference
-- Returns:
- decision
-
walkInto
boolean walkInto(EObject element)
Determines if references given element, which is a child of the elements visited by default in the tree traversing, should also be considered.- Parameters:
element
-- Returns:
- decision
-
isPossibleTarget
boolean isPossibleTarget(String identifier, EObject element)
Decides if the given element is a (possibly the final) target.- Parameters:
identifier
-element
-- Returns:
- decision
-
isSure
boolean isSure()
Should return true, if the last timeisPossibleTarget()
returned true was the final decision (i.e., traversal can be stopped).- Returns:
- decision
-
continueAfterReference
boolean continueAfterReference()
Defines, if the scoping for this decider allows to look behind the point where the reference, for which the target is searched, was defined.- Returns:
- decision
-
getAdditionalCandidates
EList<? extends EObject> getAdditionalCandidates(String identifier, EObject container)
Allows for the decider to provide additional target candidates that are not directly contained in the traversed model tree. The additional candidates will be inserted into the scope behind the children of the given container.- Parameters:
identifier
-container
-- Returns:
- a list of additional candidates.
-
activate
void activate()
Activates this decider.
-
deactivate
void deactivate()
Deactivates this decider.
-
isActive
boolean isActive()
Indicates if this decider is active.- Returns:
- true if the decider is active. false otherwise.
-
reset
void reset()
Resets the state of the decider before a complete new walk takes place.
-
-