## Uses of Interface
org.eclipse.incquery.runtime.matchers.context.IInputKey

- Packages that use IInputKey
  Package | Description
  --- | ---
  org.eclipse.incquery.patternlanguage.emf.specification.builder |
  org.eclipse.incquery.patternlanguage.emf.types |
  org.eclipse.incquery.patternlanguage.typing |
  org.eclipse.incquery.runtime.emf |
  org.eclipse.incquery.runtime.emf.types |
  org.eclipse.incquery.runtime.matchers.context |
  org.eclipse.incquery.runtime.matchers.context.common |
  org.eclipse.incquery.runtime.matchers.context.surrogate |
  org.eclipse.incquery.runtime.matchers.psystem |
  org.eclipse.incquery.runtime.matchers.psystem.basicdeferred |
  org.eclipse.incquery.runtime.matchers.psystem.basicenumerables |
  org.eclipse.incquery.runtime.rete.boundary |

- - ### Uses of IInputKey in org.eclipse.incquery.patternlanguage.emf.specification.builder

    Methods in org.eclipse.incquery.patternlanguage.emf.specification.builder with parameters of type IInputKey
    Modifier and Type | Method and Description
    --- | ---
    `void` | PatternModelAcceptor.`acceptTypeConstraint(java.util.List<java.lang.String> variableNames, IInputKey inputKey)` Accepts a `TypeConstraint`.
    `void` | EPMToPBody.`acceptTypeConstraint(java.util.List<java.lang.String> variableNames, IInputKey inputKey)`

  - ### Uses of IInputKey in org.eclipse.incquery.patternlanguage.emf.types

    Methods in org.eclipse.incquery.patternlanguage.emf.types that return IInputKey
    Modifier and Type | Method and Description
    --- | ---
    `static IInputKey` | EMFTypeSystem.`classifierToInputKey(org.eclipse.emf.ecore.EClassifier classifier)`
    `IInputKey` | EMFTypeSystem.`extractColumnDescriptor(RelationType type, int columnIndex)`
    `IInputKey` | EMFTypeSystem.`extractTypeDescriptor(Type type)`
    `IInputKey` | EMFTypeInferrer.`getInferredVariableType(Variable var)`

    Methods in org.eclipse.incquery.patternlanguage.emf.types with parameters of type IInputKey
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | EMFTypeSystem.`isConformant(IInputKey expectedType, IInputKey actualType)`
    `boolean` | EMFTypeSystem.`isConformToRelationColumn(IInputKey relationType, int columnIndex, IInputKey columnType)`
    `org.eclipse.xtext.common.types.JvmTypeReference` | EMFTypeSystem.`toJvmTypeReference(IInputKey type, org.eclipse.emf.ecore.EObject context)`

  - ### Uses of IInputKey in org.eclipse.incquery.patternlanguage.typing

    Methods in org.eclipse.incquery.patternlanguage.typing that return IInputKey
    Modifier and Type | Method and Description
    --- | ---
    `IInputKey` | ITypeSystem.`extractColumnDescriptor(RelationType type, int columnIndex)` Extracts the model-specific column type of the given index from a RelationType declaration
    `IInputKey` | ITypeSystem.NullTypeSystem.`extractColumnDescriptor(RelationType type, int columnIndex)`
    `IInputKey` | ITypeSystem.`extractTypeDescriptor(Type type)` Extracts the model-specific types from a Type declaration.
    `IInputKey` | ITypeSystem.NullTypeSystem.`extractTypeDescriptor(Type type)`
    `IInputKey` | ITypeInferrer.`getDeclaredType(Variable var)` Returns the declared type of a variable
    `IInputKey` | ITypeInferrer.NullTypeInferrer.`getDeclaredType(Variable var)`
    `IInputKey` | AbstractTypeInferrer.`getDeclaredType(Variable var)`
    `IInputKey` | ITypeInferrer.`getInferredVariableType(Variable var)` Returns the inferred type of a variable
    `IInputKey` | ITypeInferrer.NullTypeInferrer.`getInferredVariableType(Variable var)`
    `IInputKey` | ITypeInferrer.`getVariableReferenceType(VariableReference reference)` Calculates the type of a variable reference.
    `IInputKey` | ITypeInferrer.NullTypeInferrer.`getVariableReferenceType(VariableReference reference)`
    `IInputKey` | AbstractTypeInferrer.`getVariableReferenceType(VariableReference reference)`
    `IInputKey` | ITypeInferrer.`getVariableType(Variable var)` Returns the type of a variable.
    `IInputKey` | ITypeInferrer.NullTypeInferrer.`getVariableType(Variable var)`
    `IInputKey` | AbstractTypeInferrer.`getVariableType(Variable var)`

    Methods in org.eclipse.incquery.patternlanguage.typing with parameters of type IInputKey
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | ITypeSystem.`isConformant(IInputKey expectedType, IInputKey actualType)` Decides whether the second type is compatible with the first one
    `boolean` | ITypeSystem.NullTypeSystem.`isConformant(IInputKey expectedType, IInputKey actualType)`
    `boolean` | ITypeSystem.`isConformToRelationColumn(IInputKey relationType, int columnIndex, IInputKey columnType)` Decides whether the reference can have a selected type at its given column.
    `boolean` | ITypeSystem.NullTypeSystem.`isConformToRelationColumn(IInputKey relationType, int columnIndex, IInputKey columnType)`
    `org.eclipse.xtext.common.types.JvmTypeReference` | ITypeSystem.`toJvmTypeReference(IInputKey type, org.eclipse.emf.ecore.EObject context)` Creates a type reference for model inference from a selected type.
    `org.eclipse.xtext.common.types.JvmTypeReference` | ITypeSystem.NullTypeSystem.`toJvmTypeReference(IInputKey type, org.eclipse.emf.ecore.EObject context)`
    `java.lang.String` | ITypeSystem.`typeString(IInputKey type)` Converts a type object to a user-visible description string.
    `java.lang.String` | ITypeSystem.NullTypeSystem.`typeString(IInputKey type)`
    `java.lang.String` | AbstractTypeSystem.`typeString(IInputKey type)`

  - ### Uses of IInputKey in org.eclipse.incquery.runtime.emf

    Methods in org.eclipse.incquery.runtime.emf with parameters of type IInputKey
    Modifier and Type | Method and Description
    --- | ---
    `void` | EMFQueryRuntimeContext.`addUpdateListener(IInputKey key, Tuple seed, IQueryRuntimeContextListener listener)`
    `boolean` | EMFQueryRuntimeContext.`containsTuple(IInputKey key, Tuple seed)`
    `int` | EMFQueryRuntimeContext.`countTuples(IInputKey key, Tuple seed)`
    `void` | EMFQueryRuntimeContext.`ensureEnumerableKey(IInputKey key)`
    `void` | EMFQueryRuntimeContext.`ensureIndexed(IInputKey key)`
    `void` | EMFQueryRuntimeContext.`ensureValidKey(IInputKey key)`
    `void` | EMFQueryMetaContext.`ensureValidKey(IInputKey key)`
    `java.lang.Iterable<Tuple>` | EMFQueryRuntimeContext.`enumerateTuples(IInputKey key, Tuple seed)`
    `java.lang.Iterable<? extends java.lang.Object>` | EMFQueryRuntimeContext.`enumerateValues(IInputKey key, Tuple seed)`
    `java.util.Map<java.util.Set<java.lang.Integer>,java.util.Set<java.lang.Integer>>` | EMFQueryMetaContext.`getFunctionalDependencies(IInputKey key)`
    `java.util.Collection<InputKeyImplication>` | EMFQueryMetaContext.`getImplications(IInputKey implyingKey)`
    `void` | EMFQueryRuntimeContext.`illegalInputKey(IInputKey key)`
    `void` | EMFQueryMetaContext.`illegalInputKey(IInputKey key)`
    `boolean` | EMFQueryMetaContext.`isEnumerable(IInputKey key)`
    `boolean` | EMFQueryRuntimeContext.`isIndexed(IInputKey key)`
    `boolean` | EMFQueryMetaContext.`isStateless(IInputKey key)`
    `void` | EMFQueryRuntimeContext.`removeUpdateListener(IInputKey key, Tuple seed, IQueryRuntimeContextListener listener)`

  - ### Uses of IInputKey in org.eclipse.incquery.runtime.emf.types

    Classes in org.eclipse.incquery.runtime.emf.types that implement IInputKey
    Modifier and Type | Class and Description
    --- | ---
    `class` | `BaseEMFTypeKey<EMFKey>` Base class for EMF Type keys.
    `class` | `EClassTransitiveInstancesKey` Instance tuples are of form (x), where x is an eObject instance of the given eClass or one of its subclasses.
    `class` | `EDataTypeInSlotsKey` Instance tuples are of form (x), where x is an instance of the given eDataType residing at an attribute slot of an eObject in the model.
    `class` | `EStructuralFeatureInstancesKey` Instance tuples are of form (x, y), where x is an eObject that has y as the value of the given feature (or one of the values in case of multi-valued).

  - ### Uses of IInputKey in org.eclipse.incquery.runtime.matchers.context

    Methods in org.eclipse.incquery.runtime.matchers.context that return IInputKey
    Modifier and Type | Method and Description
    --- | ---
    `IInputKey` | InputKeyImplication.`getImpliedKey()` An instance tuple of this input key is implied by another key.
    `IInputKey` | InputKeyImplication.`getImplyingKey()` Optional.

    Methods in org.eclipse.incquery.runtime.matchers.context with parameters of type IInputKey
    Modifier and Type | Method and Description
    --- | ---
    `void` | IQueryRuntimeContext.`addUpdateListener(IInputKey key, Tuple seed, IQueryRuntimeContextListener listener)` Subscribes for updates in the extensional relation identified by the input key, optionally seeded with the given tuple.
    `boolean` | IQueryRuntimeContext.`containsTuple(IInputKey key, Tuple seed)` Simpler form of `IQueryRuntimeContext.enumerateTuples(IInputKey, Tuple)` in the case where all values of the tuples are bound by the seed.
    `int` | IQueryRuntimeContext.`countTuples(IInputKey key, Tuple seed)` Returns the number of tuples in the extensional relation identified by the input key, optionally seeded with the given tuple.
    `void` | IQueryRuntimeContext.`ensureIndexed(IInputKey key)` If the given (enumerable) input key is not yet indexed, the model will be traversed (after the end of the outermost coalescing block, see `IQueryRuntimeContext.coalesceTraversals(Callable)`) so that the index can be built.
    `java.lang.Iterable<Tuple>` | IQueryRuntimeContext.`enumerateTuples(IInputKey key, Tuple seed)` Returns the tuples in the extensional relation identified by the input key, optionally seeded with the given tuple.
    `java.lang.Iterable<? extends java.lang.Object>` | IQueryRuntimeContext.`enumerateValues(IInputKey key, Tuple seed)` Simpler form of `IQueryRuntimeContext.enumerateTuples(IInputKey, Tuple)` in the case where all values of the tuples are bound by the seed except for one.
    `java.util.Map<java.util.Set<java.lang.Integer>,java.util.Set<java.lang.Integer>>` | IQueryMetaContext.`getFunctionalDependencies(IInputKey key)` Returns functional dependencies of the input key expressed in terms of column indices.
    `java.util.Collection<InputKeyImplication>` | IQueryMetaContext.`getImplications(IInputKey implyingKey)` Returns known implications, e.g.
    `boolean` | IQueryMetaContext.`isEnumerable(IInputKey key)` Returns true iff instance tuples of the given key can be enumerated.
    `boolean` | IQueryRuntimeContext.`isIndexed(IInputKey key)`
    `boolean` | IQueryMetaContext.`isStateless(IInputKey key)` Returns true iff the set of instance tuples of the given key is immutable.
    `void` | IQueryRuntimeContext.`removeUpdateListener(IInputKey key, Tuple seed, IQueryRuntimeContextListener listener)` Unsubscribes from updates in the extensional relation identified by the input key, optionally seeded with the given tuple.
    `void` | IQueryRuntimeContextListener.`update(IInputKey key, Tuple updateTuple, boolean isInsertion)` The given tuple was inserted into or removed from the input relation indicated by the given key.

    Constructors in org.eclipse.incquery.runtime.matchers.context with parameters of type IInputKey
    Constructor and Description
    `InputKeyImplication(IInputKey implyingKey, IInputKey impliedKey, java.util.List<java.lang.Integer> implyingIndices)`

  - ### Uses of IInputKey in org.eclipse.incquery.runtime.matchers.context.common

    Classes in org.eclipse.incquery.runtime.matchers.context.common that implement IInputKey
    Modifier and Type | Class and Description
    --- | ---
    `class` | `BaseInputKeyWrapper<Wrapped>` An input key that is identified by a single wrapped object and the class of the wrapper.
    `class` | `JavaTransitiveInstancesKey` Instance tuples are of form (x), where object x is an instance of the given Java class or its subclasses.

  - ### Uses of IInputKey in org.eclipse.incquery.runtime.matchers.context.surrogate

    Methods in org.eclipse.incquery.runtime.matchers.context.surrogate that return types with arguments of type IInputKey
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Set<IInputKey>` | SurrogateQueryRegistry.`getAllSurrogateQueries()`
    `java.util.Map<IInputKey,PQuery>` | SurrogateQueryRegistry.`getAllSurrogateQueryFQNMap()` Deprecated. use `SurrogateQueryRegistry.getAllSurrogateQueries()` instead
    `java.util.Set<IInputKey>` | SurrogateQueryRegistry.`getDynamicSurrogateQueries()`
    `java.util.Map<IInputKey,PQuery>` | SurrogateQueryRegistry.`getDynamicSurrogateQueryFQNMap()` Deprecated. use `SurrogateQueryRegistry.getDynamicSurrogateQueries()` instead
    `java.util.Set<IInputKey>` | SurrogateQueryRegistry.`getRegisteredSurrogateQueries()`
    `java.util.Map<IInputKey,PQuery>` | SurrogateQueryRegistry.`getRegisteredSurrogateQueryFQNMap()` Deprecated. use `SurrogateQueryRegistry.getRegisteredSurrogateQueries()` instead

    Methods in org.eclipse.incquery.runtime.matchers.context.surrogate with parameters of type IInputKey
    Modifier and Type | Method and Description
    --- | ---
    `IProvider<PQuery>` | SurrogateQueryRegistry.`addDynamicSurrogateQueryForFeature(IInputKey feature, IProvider<PQuery> surrogateQuery)`
    `IProvider<PQuery>` | SurrogateQueryRegistry.`addDynamicSurrogateQueryForFeature(IInputKey feature, PQuery surrogateQuery)`
    `PQuery` | SurrogateQueryRegistry.`getSurrogateQuery(IInputKey feature)`
    `boolean` | SurrogateQueryRegistry.`hasSurrogateQueryFQN(IInputKey feature)`
    `IProvider<PQuery>` | SurrogateQueryRegistry.`registerSurrogateQueryForFeature(IInputKey feature, IProvider<PQuery> surrogateQueryProvider)`
    `IProvider<PQuery>` | SurrogateQueryRegistry.`registerSurrogateQueryForFeature(IInputKey feature, PQuery surrogateQuery)`
    `IProvider<PQuery>` | SurrogateQueryRegistry.`removeDynamicSurrogateQueryForFeature(IInputKey feature)`

  - ### Uses of IInputKey in org.eclipse.incquery.runtime.matchers.psystem

    Methods in org.eclipse.incquery.runtime.matchers.psystem that return IInputKey
    Modifier and Type | Method and Description
    --- | ---
    `IInputKey` | TypeJudgement.`getInputKey()`

    Methods in org.eclipse.incquery.runtime.matchers.psystem with parameters of type IInputKey
    Modifier and Type | Method and Description
    --- | ---
    `static java.util.Map<java.util.Set<PVariable>,java.util.Set<PVariable>>` | ITypeConstraint.TypeConstraintUtil.`getFunctionalDependencies(IQueryMetaContext context, IInputKey inputKey, Tuple variablesTuple)`

    Constructors in org.eclipse.incquery.runtime.matchers.psystem with parameters of type IInputKey
    Constructor and Description
    `TypeJudgement(IInputKey inputKey, Tuple variablesTuple)`

  - ### Uses of IInputKey in org.eclipse.incquery.runtime.matchers.psystem.basicdeferred

    Methods in org.eclipse.incquery.runtime.matchers.psystem.basicdeferred that return IInputKey
    Modifier and Type | Method and Description
    --- | ---
    `IInputKey` | TypeFilterConstraint.`getInputKey()`

    Constructors in org.eclipse.incquery.runtime.matchers.psystem.basicdeferred with parameters of type IInputKey
    Constructor and Description
    `TypeFilterConstraint(PBody pBody, Tuple variablesTuple, IInputKey inputKey)`

  - ### Uses of IInputKey in org.eclipse.incquery.runtime.matchers.psystem.basicenumerables

    Constructors in org.eclipse.incquery.runtime.matchers.psystem.basicenumerables with parameters of type IInputKey
    Constructor and Description
    `TypeConstraint(PBody pBody, Tuple variablesTuple, IInputKey inputKey)`

  - ### Uses of IInputKey in org.eclipse.incquery.runtime.rete.boundary

    Methods in org.eclipse.incquery.runtime.rete.boundary that return IInputKey
    Modifier and Type | Method and Description
    --- | ---
    `IInputKey` | ExternalInputEnumeratorNode.`getInputKey()`

    Methods in org.eclipse.incquery.runtime.rete.boundary with parameters of type IInputKey
    Modifier and Type | Method and Description
    --- | ---
    `void` | ExternalInputStatelessFilterNode.`connectThroughContext(ReteEngine engine, IInputKey inputKey)`
    `void` | ExternalInputEnumeratorNode.`connectThroughContext(ReteEngine engine, IInputKey inputKey, Tuple globalSeed)`
    `java.util.Collection<Address<ExternalInputEnumeratorNode>>` | InputConnector.`getAllExternalInputNodesForKey(IInputKey inputKey)`
    `Address<ExternalInputEnumeratorNode>` | InputConnector.`getExternalInputNode(IInputKey inputKey, Tuple seed)`
    `Address<ExternalInputEnumeratorNode>` | InputConnector.`getExternalInputNodeForKeyUnseeded(IInputKey inputKey)`
    `void` | ExternalInputEnumeratorNode.`update(IInputKey key, Tuple updateTuple, boolean isInsertion)`