Interface DataIndexTransformer


@Immutable public interface DataIndexTransformer
A transformation to apply to an existing data index in order to produce a transformed BasicDataIndex.
  • Method Details

    • intersectRowSet

      Optional<RowSet> intersectRowSet()
      A RowSet to intersect with input RowSets when producing output RowSets. If present, the result BasicDataIndex will be a static snapshot. This is the first transformation applied if present.
    • invertRowSet

      Optional<RowSet> invertRowSet()
    • sortByFirstRowKey

      @Default default boolean sortByFirstRowKey()
      Whether to sort the output BasicDataIndex's table by the first row key in each output RowSet. This is always applied after intersectRowSet() and invertRowSet() if present. Note that when sorting a refreshing index, operations that rely on the transformed index must be sure to depend on the transformed index, and not the input index, for correct satisfaction.
    • snapshotResult

      @FinalDefault default boolean snapshotResult()
      Returns:
      Whether the set of transformations will force the result index table to be a static snapshot.
    • checkNotEmpty

      @Check default void checkNotEmpty()
    • builder

      static DataIndexTransformer.Builder builder()
      Create a builder that specifies transformations to apply to an existing data index.

      When multiple transformations are specified, they are applied in a specific order:

      1. Intersect the index RowSets with the supplied RowSet. Note that the result will always be a static snapshot.
      2. Invert the index RowSets with the supplied RowSet. Note that the result will always be a static snapshot.
      3. Sort the index table by the first row key within each RowSet. Be careful to use the correct dependency for satisfaction!

      Returns:
      A new DataIndexTransformer builder.