Package org.eclipse.viatra.addon.querybasedfeatures.runtime

## Class QueryBasedFeatureSettingDelegateFactory

- java.lang.Object
- - org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory

- All Implemented Interfaces:
    `org.eclipse.emf.ecore.EStructuralFeature.Internal.SettingDelegate.Factory`

      public class QueryBasedFeatureSettingDelegateFactory
      extends java.lang.Object
      implements org.eclipse.emf.ecore.EStructuralFeature.Internal.SettingDelegate.Factory

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.eclipse.emf.ecore.EStructuralFeature.Internal.SettingDelegate.Factory

      `org.eclipse.emf.ecore.EStructuralFeature.Internal.SettingDelegate.Factory.Descriptor, org.eclipse.emf.ecore.EStructuralFeature.Internal.SettingDelegate.Factory.Registry`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `QueryBasedFeatureSettingDelegateFactory()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `org.eclipse.emf.ecore.EStructuralFeature.Internal.SettingDelegate` | `createSettingDelegate​(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature)` |
    `org.eclipse.emf.ecore.EStructuralFeature.Internal.SettingDelegate` | `createSettingDelegate​(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature, IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> querySpecification, boolean isResourceScope, boolean dynamicEMFMode)` |
    `IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>>` | `findQuerySpecification​(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature)` |
    `protected java.util.Map<ViatraQueryEngine,​java.util.List<QueryBasedFeature>>` | `getDelayedFeatures()` | Returns a live multimap associating all QBFs waiting to be initialized to each VQ engine.
    `protected AdvancedViatraQueryEngine` | `getEngineForNotifier​(org.eclipse.emf.common.notify.Notifier notifier, boolean dynamicEMFMode)` |
    `java.util.Optional<QueryBasedFeatureSettingDelegate>` | `getSettingDelegate​(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature)` | Returns the setting delegate created by EMF for a query based feature.
    `java.util.Map<java.lang.String,​IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>>>` | `getSpecificationMap()` |

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

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

- - ### Constructor Detail

    - #### QueryBasedFeatureSettingDelegateFactory

          public QueryBasedFeatureSettingDelegateFactory()

  - ### Method Detail

    - #### getSpecificationMap

          public java.util.Map<java.lang.String,​IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>>> getSpecificationMap()

    - #### getDelayedFeatures

          protected java.util.Map<ViatraQueryEngine,​java.util.List<QueryBasedFeature>> getDelayedFeatures()

      Returns a live multimap associating all QBFs waiting to be initialized to each VQ engine. Note that the multimap is currently only ever expected to grow, never deleted from or cleaned up.

    - #### getEngineForNotifier

          protected AdvancedViatraQueryEngine getEngineForNotifier​(org.eclipse.emf.common.notify.Notifier notifier,
                                                                   boolean dynamicEMFMode)

    - #### getSettingDelegate

          public java.util.Optional<QueryBasedFeatureSettingDelegate> getSettingDelegate​(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature)

      Returns the setting delegate created by EMF for a query based feature. Users can call this method for query based features to manually initialize the QBF without having a specific object that has this feature. Call `QueryBasedFeatureSettingDelegate.initializeSettingDelegate(Notifier)` with the resource set on the returned value for initialization.
      Parameters:
        `eStructuralFeature` -
      Returns:
        the delegate wrapped in optional or absent if it is null or not a query based feature
      Since:
        2.0

    - #### createSettingDelegate

          public org.eclipse.emf.ecore.EStructuralFeature.Internal.SettingDelegate createSettingDelegate​(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature)

      Specified by:
        `createSettingDelegate` in interface `org.eclipse.emf.ecore.EStructuralFeature.Internal.SettingDelegate.Factory`

    - #### findQuerySpecification

          public IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> findQuerySpecification​(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature)

    - #### createSettingDelegate

          public org.eclipse.emf.ecore.EStructuralFeature.Internal.SettingDelegate createSettingDelegate​(org.eclipse.emf.ecore.EStructuralFeature eStructuralFeature,
                                                                                                         IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> querySpecification,
                                                                                                         boolean isResourceScope,
                                                                                                         boolean dynamicEMFMode)