org.eclipse.viatra.query.runtime.matchers.context

## Interface IInputKey

- All Known Implementing Classes:
    BaseEMFTypeKey, BaseInputKeyWrapper, BottomTypeKey, EClassExactInstancesKey, EClassTransitiveInstancesKey, EClassUnscopedTransitiveInstancesKey, EDataTypeInSlotsKey, EStructuralFeatureInstancesKey, JavaTransitiveInstancesKey

      public interface IInputKey

  An input key identifies an input (extensional) relation, such as the instance set of a given node or edge type, or the direct containment relation.

  The input key, at the very minimum, is associated with an arity (number of columns), a user-friendly name, and a string identifier (for distributive purposes).

  The input key itself must be an immutable data object that properly overrides equals() and hashCode(). It must be instantiable without using the query context object, so that query specifications may construct the appropriate PQueries.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getArity()` The width of tuples in this relation.
    `java.lang.String` | `getPrettyPrintableName()` A user-friendly name that can be shown on screen for debug purposes, included in exceptions, etc.
    `java.lang.String` | `getStringID()` An internal string identifier that can be used to uniquely identify to input key (relevant for distributed applications).
    `boolean` | `isEnumerable()` Returns true iff instance tuples of the key can be enumerated.

- - ### Method Detail

    - #### getPrettyPrintableName

          java.lang.String getPrettyPrintableName()

      A user-friendly name that can be shown on screen for debug purposes, included in exceptions, etc.

    - #### getStringID

          java.lang.String getStringID()

      An internal string identifier that can be used to uniquely identify to input key (relevant for distributed applications).

    - #### getArity

          int getArity()

      The width of tuples in this relation.

    - #### isEnumerable

          boolean isEnumerable()

      Returns true iff instance tuples of the 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.