Class InterningOrdinalDomain<S,E extends OrdinalValue<E>>

java.lang.Object
org.immutables.ordinal.OrdinalDomain<E>
org.immutables.ordinal.InterningOrdinalDomain<S,E>
All Implemented Interfaces:
Iterable<E>

@ThreadSafe public abstract class InterningOrdinalDomain<S,E extends OrdinalValue<E>> extends OrdinalDomain<E>
  • Field Details

  • Constructor Details

    • InterningOrdinalDomain

      public InterningOrdinalDomain()
  • Method Details

    • internOrdinal

      public final E internOrdinal(S valueSample)
    • extractValue

      protected abstract E extractValue(S valueSample, int ordinal)
    • iterator

      public Iterator<E> iterator()
      Description copied from class: OrdinalDomain
      Iterator over all present inhabitants of ordinal domain.
      Specified by:
      iterator in interface Iterable<S>
      Overrides:
      iterator in class OrdinalDomain<E extends OrdinalValue<E>>
      Returns:
      snapshot iterator of elements in ordinal domain.
    • get

      public final E get(int ordinal)
      Description copied from class: OrdinalDomain
      Gets element from domain by corresponding ordinal value. It is guaranteed that returned element will have OrdinalValue.ordinal() value equal to supplied ordinal parameter.
      Specified by:
      get in class OrdinalDomain<E extends OrdinalValue<E>>
      Parameters:
      ordinal - ordinal value
      Returns:
      the element by ordinal value
    • length

      public final int length()
      Description copied from class: OrdinalDomain
      Current length of ordinal domain. Be caution that length is not required to be stable and could grow, as such it could be used as a hint.
      Specified by:
      length in class OrdinalDomain<E extends OrdinalValue<E>>
      Returns:
      the domain length: current max ordinal value plus one