org.eclipse.incquery.runtime.emf

## Enum EMFQueryMetaContext

- java.lang.Object
- - java.lang.Enum<EMFQueryMetaContext>
  - - org.eclipse.incquery.runtime.emf.EMFQueryMetaContext

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable<EMFQueryMetaContext>, IQueryMetaContext

      public enum EMFQueryMetaContext
      extends java.lang.Enum<EMFQueryMetaContext>
      implements IQueryMetaContext

  The singleton meta context information for EMF scopes.

  TODO generics? TODO TODO no subtyping between EDataTypes? no EDataTypes metainfo at all?

  Author:
    Bergmann Gabor

- - ### Enum Constant Summary

    Enum Constants
    Enum Constant and Description
    `INSTANCE`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `ensureValidKey(IInputKey key)`
    `org.eclipse.emf.ecore.EReference` | `featureOpposite(org.eclipse.emf.ecore.EStructuralFeature typeObject)`
    `org.eclipse.emf.ecore.EClass` | `featureSourceType(org.eclipse.emf.ecore.EStructuralFeature feature)`
    `org.eclipse.emf.ecore.EClassifier` | `featureTargetType(org.eclipse.emf.ecore.EStructuralFeature typeObject)`
    `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.
    `void` | `illegalInputKey(IInputKey key)`
    `boolean` | `isEnumerable(IInputKey key)` Returns true iff instance tuples of the given key can be enumerated.
    `boolean` | `isFeatureMultiplicityOneTo(org.eclipse.emf.ecore.EStructuralFeature typeObject)`
    `boolean` | `isFeatureMultiplicityToOne(org.eclipse.emf.ecore.EStructuralFeature feature)`
    `boolean` | `isStateless(IInputKey key)` Returns true iff the set of instance tuples of the given key is immutable.
    `static EMFQueryMetaContext` | `valueOf(java.lang.String name)` Returns the enum constant of this type with the specified name.
    `static EMFQueryMetaContext[]` | `values()` Returns an array containing the constants of this enum type, in the order they are declared.

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

      `compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

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

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Enum Constant Detail

    - #### INSTANCE

          public static final EMFQueryMetaContext INSTANCE

  - ### Method Detail

    - #### values

          public static EMFQueryMetaContext[] values()

      Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:

          for (EMFQueryMetaContext c : EMFQueryMetaContext.values())
              System.out.println(c);

      Returns:
        an array containing the constants of this enum type, in the order they are declared

    - #### valueOf

          public static EMFQueryMetaContext valueOf(java.lang.String name)

      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
        `name` - the name of the enum constant to be returned.
      Returns:
        the enum constant with the specified name
      Throws:
        `java.lang.IllegalArgumentException` - if this enum type has no constant with the specified name
        `java.lang.NullPointerException` - if the argument is null

    - #### isEnumerable

          public boolean isEnumerable(IInputKey key)

      Description copied from interface: `IQueryMetaContext`
      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()`.

      Specified by:
        `isEnumerable` in interface `IQueryMetaContext`

    - #### isStateless

          public boolean isStateless(IInputKey key)

      Description copied from interface: `IQueryMetaContext`
      Returns true iff the set of instance tuples of the given key is immutable.

      If false, the runtime provides notifications upon change.

      Specified by:
        `isStateless` in interface `IQueryMetaContext`

    - #### getFunctionalDependencies

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

      Description copied from interface: `IQueryMetaContext`
      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.

      Specified by:
        `getFunctionalDependencies` in interface `IQueryMetaContext`

    - #### getImplications

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

      Description copied from interface: `IQueryMetaContext`
      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.

      Specified by:
        `getImplications` in interface `IQueryMetaContext`

    - #### ensureValidKey

          public void ensureValidKey(IInputKey key)

    - #### illegalInputKey

          public void illegalInputKey(IInputKey key)

    - #### isFeatureMultiplicityToOne

          public boolean isFeatureMultiplicityToOne(org.eclipse.emf.ecore.EStructuralFeature feature)

    - #### isFeatureMultiplicityOneTo

          public boolean isFeatureMultiplicityOneTo(org.eclipse.emf.ecore.EStructuralFeature typeObject)

    - #### featureSourceType

          public org.eclipse.emf.ecore.EClass featureSourceType(org.eclipse.emf.ecore.EStructuralFeature feature)

    - #### featureTargetType

          public org.eclipse.emf.ecore.EClassifier featureTargetType(org.eclipse.emf.ecore.EStructuralFeature typeObject)

    - #### featureOpposite

          public org.eclipse.emf.ecore.EReference featureOpposite(org.eclipse.emf.ecore.EStructuralFeature typeObject)