org.eclipse.incquery.runtime.api

## Interface IQueryGroup

- All Known Implementing Classes:
    BaseGeneratedPatternGroup, BasePatternGroup, DerivedFeatures, GenericPatternGroup, Helpers, PackageBasedPatternGroup, Traceability

      public interface IQueryGroup

  Generic interface for group of query specifications.

  It handles more than one patterns as a group, and provides functionality to initialize the matchers together (which has performance benefits).

  Author:
    Mark Czotter

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Set<IQuerySpecification<?>>` | `getSpecifications()` Returns the currently assigned `IQuerySpecification`s.
    `void` | `prepare(IncQueryEngine engine)` Initializes matchers for the group of patterns within an `IncQueryEngine`.
    `void` | `prepare(org.eclipse.emf.common.notify.Notifier emfRoot)` Deprecated. use `prepare(IncQueryEngine)` instead, e.g. in conjunction with `IncQueryEngine.on(Notifier)`

- - ### Method Detail

    - #### prepare

          void prepare(IncQueryEngine engine)
                throws IncQueryException

      Initializes matchers for the group of patterns within an `IncQueryEngine`. If some of the pattern matchers are already constructed in the engine, no task is performed for them.

      This preparation step has the advantage that it prepares pattern matchers for an arbitrary number of patterns in a single-pass traversal of the model. This is typically more efficient than traversing the model each time an individual pattern matcher is initialized on demand. The performance benefit only manifests itself if the engine is not in wildcard mode.

      Parameters:
        `engine` - the existing IncQuery engine in which the matchers will be created.
      Throws:
        `IncQueryException` - if there was an error in preparing the engine

    - #### prepare

          @Deprecated
          void prepare(org.eclipse.emf.common.notify.Notifier emfRoot)
                            throws IncQueryException

      Deprecated. use `prepare(IncQueryEngine)` instead, e.g. in conjunction with `IncQueryEngine.on(Notifier)`
      Initializes the contained patterns over a given EMF model root (recommended: Resource or ResourceSet). If a pattern matcher engine with the same root already exists, it will be reused.

      The scope of pattern matching will be the given EMF model root and below (see FAQ for more precise definition). The match set will be incrementally refreshed upon updates from this scope.

      Parameters:
        `emfRoot` - the root of the EMF tree where the pattern matchers will operate. Recommended: Resource or ResourceSet.
      Throws:
        `IncQueryException` - if an error occurs during pattern matcher creation

    - #### getSpecifications

          java.util.Set<IQuerySpecification<?>> getSpecifications()

      Returns the currently assigned `IQuerySpecification`s.