Class AbstractCoreIndex<T>

java.lang.Object
io.permazen.core.AbstractCoreIndex<T>
Type Parameters:
T - index target type
All Implemented Interfaces:
Index<T>
Direct Known Subclasses:
CoreIndex1, CoreIndex2, CoreIndex3, CoreIndex4

public abstract class AbstractCoreIndex<T> extends Object implements Index<T>
Support superclass for the various core index classes.

Instances are immutable.

  • Method Details

    • getEncodings

      public List<Encoding<?>> getEncodings()
      Get all of the Encodings associated with this instance. The list includes an entry for each indexed value type, followed by a final entry representing the index target type.
      Returns:
      unmodifiable list of encodings
    • filter

      public abstract AbstractCoreIndex<T> filter(int index, KeyFilter keyFilter)
      Apply key filtering to field values at the specified index. This method works cummulatively: the new instance filters to the intersection of the given key filter and any existing key filter on that field.
      Parameters:
      index - zero-based object type field offset
      keyFilter - key filtering to apply
      Returns:
      filtered view of this instance
      Throws:
      IndexOutOfBoundsException - if index is out of range
      IllegalArgumentException - if keyFilter is null