org.eclipse.viatra.query.runtime.base.api

## Enum IndexingLevel

- java.lang.Object
- - java.lang.Enum<IndexingLevel>
  - - org.eclipse.viatra.query.runtime.base.api.IndexingLevel

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

      public enum IndexingLevel
      extends java.lang.Enum<IndexingLevel>

  The values of this enum denotes the level of indexing the base indexer is capable of.
  Since:
    1.4

- - ### Enum Constant Summary

    Enum Constants
    Enum Constant and Description
    `BOTH` Cardinality information is stored and live notifications are dispatched
    `FULL` Full indexing is performed, set of instances is available
    `NONE` No indexing is performed
    `NOTIFICATIONS` Notifications are dispatched about the changes
    `STATISTICS` Only cardinality information is stored.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `hasInstances()` Tells whether the indexer shall perform instance indexing
    `boolean` | `hasStatistics()` Tells whether the indexer shall perform separate statistics calculation for this level
    `IndexingLevel` | `merge(IndexingLevel other)` Merge this level with the given other level, The resulting indexing level will provide the functionality which conforms to both given levels.
    `boolean` | `providesLevel(IndexingLevel level)` Returns whether the current indexing level includes all features from the parameter level
    `static IndexingLevel` | `toLevel(IndexingService service)`
    `static IndexingLevel` | `toLevel(java.util.Set<IndexingService> services)`
    `static IndexingLevel` | `valueOf(java.lang.String name)` Returns the enum constant of this type with the specified name.
    `static IndexingLevel[]` | `values()` Returns an array containing the constants of this enum type, in the order they are declared.

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

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

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

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

- - ### Enum Constant Detail

    - #### NONE

          public static final IndexingLevel NONE

      No indexing is performed

    - #### STATISTICS

          public static final IndexingLevel STATISTICS

      Only cardinality information is stored. This indexing level makes possible to calculate results of `NavigationHelper.countAllInstances(org.eclipse.emf.ecore.EClass)`, `NavigationHelper.countFeatures(org.eclipse.emf.ecore.EStructuralFeature)` and `NavigationHelper.countDataTypeInstances(org.eclipse.emf.ecore.EDataType)` with minimal memory footprint.

    - #### NOTIFICATIONS

          public static final IndexingLevel NOTIFICATIONS

      Notifications are dispatched about the changes

    - #### BOTH

          public static final IndexingLevel BOTH

      Cardinality information is stored and live notifications are dispatched

    - #### FULL

          public static final IndexingLevel FULL

      Full indexing is performed, set of instances is available

  - ### Method Detail

    - #### values

          public static IndexingLevel[] 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 (IndexingLevel c : IndexingLevel.values())
              System.out.println(c);

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

    - #### valueOf

          public static IndexingLevel 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

    - #### toLevel

          public static IndexingLevel toLevel(IndexingService service)

    - #### toLevel

          public static IndexingLevel toLevel(java.util.Set<IndexingService> services)

    - #### merge

          public IndexingLevel merge(IndexingLevel other)

      Merge this level with the given other level, The resulting indexing level will provide the functionality which conforms to both given levels.

    - #### hasStatistics

          public boolean hasStatistics()

      Tells whether the indexer shall perform separate statistics calculation for this level

    - #### hasInstances

          public boolean hasInstances()

      Tells whether the indexer shall perform instance indexing

    - #### providesLevel

          public boolean providesLevel(IndexingLevel level)

      Returns whether the current indexing level includes all features from the parameter level
      Since:
        1.5