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

    Modifier and Type
    Method
    Description
    void
    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
    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
    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
    Indicates if this decider is active.
    boolean
    isPossibleTarget(String identifier, EObject element)
    Decides if the given element is a (possibly the final) target.
    boolean
    Should return true, if the last time isPossibleTarget() returned true was the final decision (i.e., traversal can be stopped).
    void
    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 Details

    • 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 time isPossibleTarget() 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.