Package org.immutables.ordinal
Class InterningOrdinalDomain<S,E extends OrdinalValue<E>>
- java.lang.Object
-
- org.immutables.ordinal.OrdinalDomain<E>
-
- org.immutables.ordinal.InterningOrdinalDomain<S,E>
-
- All Implemented Interfaces:
java.lang.Iterable<E>
@ThreadSafe public abstract class InterningOrdinalDomain<S,E extends OrdinalValue<E>> extends OrdinalDomain<E>
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<S,E>internedInstancesprivate java.util.List<E>values
-
Constructor Summary
Constructors Constructor Description InterningOrdinalDomain()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract EextractValue(S valueSample, int ordinal)Eget(int ordinal)Gets element from domain by corresponding ordinal value.EinternOrdinal(S valueSample)java.util.Iterator<E>iterator()Iterator over all present inhabitants of ordinal domain.intlength()Current length of ordinal domain.
-
-
-
Field Detail
-
values
private final java.util.List<E extends OrdinalValue<E>> values
-
internedInstances
private final java.util.Map<S,E extends OrdinalValue<E>> internedInstances
-
-
Method Detail
-
iterator
public java.util.Iterator<E> iterator()
Description copied from class:OrdinalDomainIterator over all present inhabitants of ordinal domain.- Specified by:
iteratorin interfacejava.lang.Iterable<S>- Overrides:
iteratorin classOrdinalDomain<E extends OrdinalValue<E>>- Returns:
- snapshot iterator of elements in ordinal domain.
-
get
public final E get(int ordinal)
Description copied from class:OrdinalDomainGets element from domain by corresponding ordinal value. It is guaranteed that returned element will haveOrdinalValue.ordinal()value equal to suppliedordinalparameter.- Specified by:
getin classOrdinalDomain<E extends OrdinalValue<E>>- Parameters:
ordinal- ordinal value- Returns:
- the element by ordinal value
-
length
public final int length()
Description copied from class:OrdinalDomainCurrent 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:
lengthin classOrdinalDomain<E extends OrdinalValue<E>>- Returns:
- the domain length: current max ordinal value plus one
-
-