Class EMFVisitor
- java.lang.Object
-
- org.eclipse.viatra.query.runtime.base.comprehension.EMFVisitor
-
- Direct Known Subclasses:
DerivedFeatureAdapter.DerivedFeatureEMFVisitor
public class EMFVisitor extends java.lang.ObjectUse EMFModelComprehension to visit an EMF model.
-
-
Constructor Summary
Constructors Constructor Description EMFVisitor(boolean preOrder)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanattemptProxyResolutions(org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EReference feature)Whether the given reference of the given object should be resolved when it is a proxybooleanavoidTransientContainmentLink(org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EReference reference, org.eclipse.emf.ecore.EObject targetObject)An opportunity for the visitor to indicate that the containment link is considered in a transient state, and the model comprehension should avoid following it.booleandescendAlongCrossResourceContainments()booleanpreOrder()booleanpruneFeature(org.eclipse.emf.ecore.EStructuralFeature feature)Returns true if the given feature should not be traversed (interesting esp.booleanpruneSubtrees(org.eclipse.emf.ecore.EObject source)Returns true if the contents of an object should be pruned (and not explored by the visitor)booleanpruneSubtrees(org.eclipse.emf.ecore.resource.Resource source)Returns true if the contents of a resource should be pruned (and not explored by the visitor)voidvisitAttribute(org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EAttribute feature, java.lang.Object target)voidvisitElement(org.eclipse.emf.ecore.EObject source)voidvisitInternalContainment(org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EReference feature, org.eclipse.emf.ecore.EObject target)voidvisitNonContainmentReference(org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EReference feature, org.eclipse.emf.ecore.EObject target)voidvisitProxyReference(org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EReference reference, org.eclipse.emf.ecore.EObject targetObject, java.lang.Integer position)Called after visiting the reference, if the target is a proxy.voidvisitResource(org.eclipse.emf.ecore.resource.Resource resource)voidvisitTopElementInResource(org.eclipse.emf.ecore.resource.Resource resource, org.eclipse.emf.ecore.EObject element)
-
-
-
Method Detail
-
visitTopElementInResource
public void visitTopElementInResource(org.eclipse.emf.ecore.resource.Resource resource, org.eclipse.emf.ecore.EObject element)- Parameters:
resource-element-
-
visitResource
public void visitResource(org.eclipse.emf.ecore.resource.Resource resource)
- Parameters:
resource-
-
visitElement
public void visitElement(org.eclipse.emf.ecore.EObject source)
- Parameters:
source-
-
visitNonContainmentReference
public void visitNonContainmentReference(org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EReference feature, org.eclipse.emf.ecore.EObject target)- Parameters:
source-feature-target-
-
visitInternalContainment
public void visitInternalContainment(org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EReference feature, org.eclipse.emf.ecore.EObject target)- Parameters:
source-feature-target-
-
visitAttribute
public void visitAttribute(org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EAttribute feature, java.lang.Object target)- Parameters:
source-feature-target-
-
pruneFeature
public boolean pruneFeature(org.eclipse.emf.ecore.EStructuralFeature feature)
Returns true if the given feature should not be traversed (interesting esp. if multi-valued)
-
pruneSubtrees
public boolean pruneSubtrees(org.eclipse.emf.ecore.EObject source)
Returns true if the contents of an object should be pruned (and not explored by the visitor)
-
pruneSubtrees
public boolean pruneSubtrees(org.eclipse.emf.ecore.resource.Resource source)
Returns true if the contents of a resource should be pruned (and not explored by the visitor)
-
avoidTransientContainmentLink
public boolean avoidTransientContainmentLink(org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EReference reference, org.eclipse.emf.ecore.EObject targetObject)An opportunity for the visitor to indicate that the containment link is considered in a transient state, and the model comprehension should avoid following it. A containment is in a transient state from the point of view of the visitor if it connects a subtree that is being inserted during a full-model traversal, and a separate notification handler will deal with it later.
-
preOrder
public boolean preOrder()
- Returns:
- if objects should be visited before their outgoing edges
-
visitProxyReference
public void visitProxyReference(org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EReference reference, org.eclipse.emf.ecore.EObject targetObject, java.lang.Integer position)Called after visiting the reference, if the target is a proxy.- Parameters:
position- optional: known position in multivalued collection (for more efficient proxy resolution)
-
attemptProxyResolutions
public boolean attemptProxyResolutions(org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EReference feature)Whether the given reference of the given object should be resolved when it is a proxy
-
descendAlongCrossResourceContainments
public boolean descendAlongCrossResourceContainments()
- Returns:
- true if traversing visitors shall descend along cross-resource containments (this only makes sense for traversing visitors on an object scope)
- Since:
- 1.7
-
-