org.eclipse.incquery.runtime.matchers.context

## Interface IQueryMetaContext

- All Known Implementing Classes:
    EMFQueryMetaContext

      public interface IQueryMetaContext

  Provides metamodel information (relationship of input keys) to query evaluator backends at runtime and at query planning time.
  Author:
    Bergmann Gabor

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Map<java.util.Set<java.lang.Integer>,java.util.Set<java.lang.Integer>>` | `getFunctionalDependencies(IInputKey key)` Returns functional dependencies of the input key expressed in terms of column indices.
    `java.util.Collection<InputKeyImplication>` | `getImplications(IInputKey implyingKey)` Returns known implications, e.g.
    `boolean` | `isEnumerable(IInputKey key)` Returns true iff instance tuples of the given key can be enumerated.
    `boolean` | `isStateless(IInputKey key)` Returns true iff the set of instance tuples of the given key is immutable.

- - ### Method Detail

    - #### isEnumerable

          boolean isEnumerable(IInputKey key)

      Returns true iff instance tuples of the given key can be enumerated.

      If false, the runtime can only test tuple membership in the extensional relation identified by the key, but not enumerate member tuples in general.

      Equivalent to `IInputKey.isEnumerable()`.

    - #### isStateless

          boolean isStateless(IInputKey key)

      Returns true iff the set of instance tuples of the given key is immutable.

      If false, the runtime provides notifications upon change.

    - #### getImplications

          java.util.Collection<InputKeyImplication> getImplications(IInputKey implyingKey)

      Returns known implications, e.g. edge supertypes, edge opposites, node type constraints, etc.

      Note that for the obvious reasons, only enumerable keys can imply enumerable keys.

    - #### getFunctionalDependencies

          java.util.Map<java.util.Set<java.lang.Integer>,java.util.Set<java.lang.Integer>> getFunctionalDependencies(IInputKey key)

      Returns functional dependencies of the input key expressed in terms of column indices.

      Each entry of the map is a functional dependency rule, where the entry key specifies source columns and the entry value specifies target columns.