Interface Index4<V1,V2,V3,V4,T>

Type Parameters:
V1 - first indexed value type
V2 - second indexed value type
V3 - third indexed value type
V4 - fourth indexed value type
T - index target type
All Superinterfaces:
Index<T>
All Known Implementing Classes:
CoreIndex4

public interface Index4<V1,V2,V3,V4,T> extends Index<T>
An index on a four fields.

Indexes are read-only and "live", always reflecting the current transaction state.

See Also:
  • Method Details

    • numberOfFields

      default int numberOfFields()
      Description copied from interface: Index
      Get the number of fields in this index.
      Specified by:
      numberOfFields in interface Index<V1>
      Returns:
      the number of indexed fields
    • asSet

      View this index as a NavigableSet of tuples.
      Specified by:
      asSet in interface Index<V1>
      Returns:
      NavigableSet of tuples containing indexed values and target value
    • asMap

      View this index as a NavigableMap of target values keyed by indexed value tuples.
      Specified by:
      asMap in interface Index<V1>
      Returns:
      NavigableMap from indexed value tuple to the corresponding set of target objects
    • asMapOfIndex1

      NavigableMap<Tuple3<V1,V2,V3>,Index1<V4,T>> asMapOfIndex1()
      View this index as a NavigableMap of Index1s keyed by the first three values.
      Returns:
      NavigableMap from first three values to Index1
    • asMapOfIndex2

      NavigableMap<Tuple2<V1,V2>,Index2<V3,V4,T>> asMapOfIndex2()
      View this index as a NavigableMap of Index2s keyed by the first two values.
      Returns:
      NavigableMap from first two values to Index2
    • asMapOfIndex3

      NavigableMap<V1,Index3<V2,V3,V4,T>> asMapOfIndex3()
      View this index as a NavigableMap of Index3s keyed by the first value.
      Returns:
      NavigableMap from first value to Index3
    • asIndex3

      Index3<V1,V2,V3,V4> asIndex3()
      Get the prefix of this instance that only includes the first four indexed fields.
      Returns:
      prefix of this index
    • asIndex2

      Index2<V1,V2,V3> asIndex2()
      Get the prefix of this instance that only includes the first three indexed fields.
      Returns:
      prefix of this index
    • asIndex1

      Index1<V1,V2> asIndex1()
      Get the prefix of this instance that only includes the first two indexed fields.
      Returns:
      prefix of this index
    • withValue1Bounds

      Index4<V1,V2,V3,V4,T> withValue1Bounds(Bounds<V1> bounds)
      Impose Bounds that restrict the range of the first indexed value.
      Parameters:
      bounds - bounds to impose on the first indexed value
      Returns:
      a view of this index in which only first values within bounds are visible
    • withValue2Bounds

      Index4<V1,V2,V3,V4,T> withValue2Bounds(Bounds<V2> bounds)
      Impose Bounds that restrict the range of the second indexed value.
      Parameters:
      bounds - bounds to impose on the second indexed value
      Returns:
      a view of this index in which only second values within bounds are visible
    • withValue3Bounds

      Index4<V1,V2,V3,V4,T> withValue3Bounds(Bounds<V3> bounds)
      Impose Bounds that restrict the range of the third indexed value.
      Parameters:
      bounds - bounds to impose on the third indexed value
      Returns:
      a view of this index in which only third values within bounds are visible
    • withValue4Bounds

      Index4<V1,V2,V3,V4,T> withValue4Bounds(Bounds<V4> bounds)
      Impose Bounds that restrict the range of the fourth indexed value.
      Parameters:
      bounds - bounds to impose on the fourth indexed value
      Returns:
      a view of this index in which only fourth values within bounds are visible
    • withTargetBounds

      Index4<V1,V2,V3,V4,T> withTargetBounds(Bounds<T> bounds)
      Impose Bounds that restrict the range of the target value.
      Parameters:
      bounds - bounds to impose on the target value
      Returns:
      a view of this index in which only target values within bounds are visible