Package org.eclipse.viatra.query.runtime.api

## Interface IQueryGroup

- All Known Implementing Classes:
    `BaseGeneratedPatternGroup`, `BaseQueryGroup`, `GenericQueryGroup`, `LazyLoadingQueryGroup`, `PackageBasedQueryGroup`

      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).

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.util.Set<IQuerySpecification<?>>` | `getSpecifications()` | Returns the currently assigned `IQuerySpecification`s.
    `void` | `prepare​(ViatraQueryEngine engine)` | Initializes matchers for the group of patterns within an `ViatraQueryEngine`.

- - ### Method Detail

    - #### prepare

          void prepare​(ViatraQueryEngine engine)

      Initializes matchers for the group of patterns within an `ViatraQueryEngine`. 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 VIATRA Query engine in which the matchers will be created.
      Throws:
        `ViatraQueryRuntimeException` - if there was an error in preparing the engine

    - #### getSpecifications

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

      Returns the currently assigned `IQuerySpecification`s.