Package org.eclipse.viatra.query.runtime.base.comprehension

## Class EMFModelComprehension

- java.lang.Object
- - org.eclipse.viatra.query.runtime.base.comprehension.EMFModelComprehension

-     public class EMFModelComprehension
      extends java.lang.Object

  No Extend:
    This class is not intended to be subclassed by clients.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected BaseIndexOptions` | `options` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `EMFModelComprehension​(BaseIndexOptions options)` | Creates a model comprehension with the specified options.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `emulateUntraversableFeature​(EMFVisitor visitor, org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EStructuralFeature emulated, java.lang.Object target)` | Emulates a derived edge, if it is not visited otherwise
    `boolean` | `isLoading​(org.eclipse.emf.ecore.resource.Resource resource)` | Finds out whether the Resource is currently loading
    `boolean` | `onlySamplingFeature​(org.eclipse.emf.ecore.EStructuralFeature feature)` | Decides whether a feature can only be sampled as there is no guarantee that proper notifications will be delivered by their implementation.
    `boolean` | `representable​(org.eclipse.emf.ecore.EStructuralFeature feature)` | This feature can be represented in IQBase.
    `void` | `traverseFeature​(EMFVisitor visitor, org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EStructuralFeature feature, java.lang.Object target, java.lang.Integer position)` |
    `protected void` | `traverseFeatureInternal​(EMFVisitor visitor, org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EStructuralFeature feature, java.lang.Object target, boolean visitorPrunes, java.lang.Integer position)` |
    `protected void` | `traverseFeatureInternalSimple​(EMFVisitor visitor, org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EStructuralFeature feature, java.lang.Object target, java.lang.Integer position)` |
    `protected void` | `traverseFeatureTargets​(EMFVisitor visitor, org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EStructuralFeature feature, boolean visitorPrunes)` |
    `void` | `traverseModel​(EMFVisitor visitor, org.eclipse.emf.common.notify.Notifier source)` | Resource filters not consulted here (for performance), because model roots are assumed to be pre-filtered.
    `void` | `traverseObject​(EMFVisitor visitor, org.eclipse.emf.ecore.EObject source)` |
    `void` | `traverseObjectIfUnfiltered​(EMFVisitor visitor, org.eclipse.emf.ecore.EObject targetObject)` |
    `void` | `traverseResource​(EMFVisitor visitor, org.eclipse.emf.ecore.resource.Resource source)` |
    `void` | `traverseResourceIfUnfiltered​(EMFVisitor visitor, org.eclipse.emf.ecore.resource.Resource resource)` |
    `void` | `traverseResourceSet​(EMFVisitor visitor, org.eclipse.emf.ecore.resource.ResourceSet source)` |
    `void` | `tryResolveReference​(org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EReference reference)` | Can be called to attempt to resolve a reference pointing to one or more proxies, using eGet().
    `protected boolean` | `unprunableFeature​(EMFVisitor visitor, org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EStructuralFeature feature)` |
    `boolean` | `untraversableDirectly​(org.eclipse.emf.ecore.EStructuralFeature feature)` | Should not traverse this feature directly.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### options

          protected BaseIndexOptions options

      Since:
        2.3

  - ### Constructor Detail

    - #### EMFModelComprehension

          public EMFModelComprehension​(BaseIndexOptions options)

      Creates a model comprehension with the specified options. The options are copied, therefore subsequent changes will not affect the comprehension.

  - ### Method Detail

    - #### untraversableDirectly

          public boolean untraversableDirectly​(org.eclipse.emf.ecore.EStructuralFeature feature)

      Should not traverse this feature directly. It is still possible that it can be represented in IQBase if `representable(EStructuralFeature)` is true.

    - #### onlySamplingFeature

          public boolean onlySamplingFeature​(org.eclipse.emf.ecore.EStructuralFeature feature)

      Decides whether a feature can only be sampled as there is no guarantee that proper notifications will be delivered by their implementation.

      Such features are derived (and/or volatile) features that are not well-behaving.

    - #### representable

          public boolean representable​(org.eclipse.emf.ecore.EStructuralFeature feature)

      This feature can be represented in IQBase.

    - #### traverseModel

          public void traverseModel​(EMFVisitor visitor,
                                    org.eclipse.emf.common.notify.Notifier source)

      Resource filters not consulted here (for performance), because model roots are assumed to be pre-filtered.

    - #### traverseResourceSet

          public void traverseResourceSet​(EMFVisitor visitor,
                                          org.eclipse.emf.ecore.resource.ResourceSet source)

    - #### traverseResourceIfUnfiltered

          public void traverseResourceIfUnfiltered​(EMFVisitor visitor,
                                                   org.eclipse.emf.ecore.resource.Resource resource)

    - #### traverseResource

          public void traverseResource​(EMFVisitor visitor,
                                       org.eclipse.emf.ecore.resource.Resource source)

    - #### traverseObjectIfUnfiltered

          public void traverseObjectIfUnfiltered​(EMFVisitor visitor,
                                                 org.eclipse.emf.ecore.EObject targetObject)

    - #### traverseObject

          public void traverseObject​(EMFVisitor visitor,
                                     org.eclipse.emf.ecore.EObject source)

    - #### traverseFeatureTargets

          protected void traverseFeatureTargets​(EMFVisitor visitor,
                                                org.eclipse.emf.ecore.EObject source,
                                                org.eclipse.emf.ecore.EStructuralFeature feature,
                                                boolean visitorPrunes)

    - #### unprunableFeature

          protected boolean unprunableFeature​(EMFVisitor visitor,
                                              org.eclipse.emf.ecore.EObject source,
                                              org.eclipse.emf.ecore.EStructuralFeature feature)

      Since:
        2.3

    - #### traverseFeature

          public void traverseFeature​(EMFVisitor visitor,
                                      org.eclipse.emf.ecore.EObject source,
                                      org.eclipse.emf.ecore.EStructuralFeature feature,
                                      java.lang.Object target,
                                      java.lang.Integer position)

      Parameters:
        `position` - optional: known position in multivalued collection (for more efficient proxy resolution)

    - #### traverseFeatureInternalSimple

          protected void traverseFeatureInternalSimple​(EMFVisitor visitor,
                                                       org.eclipse.emf.ecore.EObject source,
                                                       org.eclipse.emf.ecore.EStructuralFeature feature,
                                                       java.lang.Object target,
                                                       java.lang.Integer position)

      Parameters:
        `position` - optional: known position in multivalued collection (for more efficient proxy resolution)
      Since:
        2.3

    - #### traverseFeatureInternal

          protected void traverseFeatureInternal​(EMFVisitor visitor,
                                                 org.eclipse.emf.ecore.EObject source,
                                                 org.eclipse.emf.ecore.EStructuralFeature feature,
                                                 java.lang.Object target,
                                                 boolean visitorPrunes,
                                                 java.lang.Integer position)

      Parameters:
        `position` - optional: known position in multivalued collection (for more efficient proxy resolution)
      Since:
        2.3

    - #### emulateUntraversableFeature

          protected void emulateUntraversableFeature​(EMFVisitor visitor,
                                                     org.eclipse.emf.ecore.EObject source,
                                                     org.eclipse.emf.ecore.EStructuralFeature emulated,
                                                     java.lang.Object target)

      Emulates a derived edge, if it is not visited otherwise
      Since:
        2.3

    - #### tryResolveReference

          public void tryResolveReference​(org.eclipse.emf.ecore.EObject source,
                                          org.eclipse.emf.ecore.EReference reference)

      Can be called to attempt to resolve a reference pointing to one or more proxies, using eGet().

    - #### isLoading

          public boolean isLoading​(org.eclipse.emf.ecore.resource.Resource resource)

      Finds out whether the Resource is currently loading