Package io.usethesource.capsule.core
Class PersistentBidirectionalTrieSetMultimap<K,V>
- java.lang.Object
-
- io.usethesource.capsule.core.PersistentBidirectionalTrieSetMultimap<K,V>
-
- All Implemented Interfaces:
BinaryRelation<K,V>,BinaryRelation.Immutable<K,V>,SetMultimap<K,V>,SetMultimap.Immutable<K,V>,SetMultimapEq<K,V>,SetMultimapEq.Immutable<K,V>,java.io.Serializable
public class PersistentBidirectionalTrieSetMultimap<K,V> extends java.lang.Object implements BinaryRelation.Immutable<K,V>, java.io.Serializable
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface io.usethesource.capsule.BinaryRelation
BinaryRelation.Immutable<K,V>, BinaryRelation.Transient<K,V>
-
Nested classes/interfaces inherited from interface io.usethesource.capsule.SetMultimap
SetMultimap.Immutable<K,V>, SetMultimap.Transient<K,V>
-
Nested classes/interfaces inherited from interface io.usethesource.capsule.SetMultimapEq
SetMultimapEq.Immutable<K,V>, SetMultimapEq.Transient<K,V>
-
-
Field Summary
Fields Modifier and Type Field Description private SetMultimap.Immutable<V,K>bwdprivate SetMultimap.Immutable<K,V>fwdprivate static longserialVersionUID
-
Constructor Summary
Constructors Constructor Description PersistentBidirectionalTrieSetMultimap(SetMultimap.Immutable<K,V> fwd, SetMultimap.Immutable<V,K> bwd)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description SetMultimap.Immutable<K,V>__insert(K key, Set.Immutable<V> values)SetMultimap.Immutable<K,V>__insert(K key, V value)SetMultimap.Immutable<K,V>__put(K key, Set.Immutable<V> values)SetMultimap.Immutable<K,V>__put(K key, V value)SetMultimap.Immutable<K,V>__remove(K key)SetMultimap.Immutable<K,V>__remove(K key, V value)BinaryRelation.Transient<K,V>asTransient()private static <K,V>
BinaryRelation.Immutable<K,V>batchWireTuple(K key, Set.Immutable<V> values, java.util.function.BiFunction<K,Set.Immutable<V>,? extends SetMultimap.Immutable<K,V>> fwdMerger, java.util.function.BiFunction<Set.Immutable<V>,K,? extends SetMultimap.Immutable<V,K>> bwdMerger)booleancontainsEntry(java.lang.Object o0, java.lang.Object o1)booleancontainsKey(java.lang.Object o)booleancontainsValue(java.lang.Object o)java.util.Iterator<java.util.Map.Entry<K,V>>entryIterator()java.util.Set<java.util.Map.Entry<K,V>>entrySet()booleanequals(java.lang.Object other)Compares the specified object for equality against this multimap.Set.Immutable<V>get(java.lang.Object o)inthashCode()Returns the hash code for this multimap.BinaryRelation.Immutable<V,K>inverse()booleanisEmpty()booleanisTransientSupported()java.util.Iterator<K>keyIterator()java.util.Set<K>keySet()java.util.Iterator<java.util.Map.Entry<K,java.lang.Object>>nativeEntryIterator()Iterates over the raw internal structure.static <K,V>
BinaryRelation.Immutable<K,V>of()intsize()Return the number of key-value pairs contained in this multimap.intsizeDistinct()SetMultimap<K,V>toSetMultimap()java.lang.StringtoString()static <K,V>
BinaryRelation.Transient<K,V>transientOf()<T> java.util.Iterator<T>tupleIterator(java.util.function.BiFunction<K,V,T> dataConverter)<T> java.util.stream.Stream<T>tupleStream(java.util.function.BiFunction<K,V,T> dataConverter)java.util.Iterator<V>valueIterator()java.util.Collection<V>values()private static <K,V>
BinaryRelation.Immutable<K,V>wireTuple(K key, V value, java.util.function.BiFunction<K,V,? extends SetMultimap.Immutable<K,V>> fwdMerger, java.util.function.BiFunction<V,K,? extends SetMultimap.Immutable<V,K>> bwdMerger)-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface io.usethesource.capsule.SetMultimap.Immutable
__insert, complement, intersect, inverseMap, union
-
Methods inherited from interface io.usethesource.capsule.SetMultimapEq
containsEntryEquivalent, containsKeyEquivalent, containsValueEquivalent, getEquivalent
-
Methods inherited from interface io.usethesource.capsule.SetMultimapEq.Immutable
__insertEquivalent, __insertEquivalent, __putEquivalent, __putEquivalent, __removeEquivalent, __removeEquivalent, complementEquivalent, intersectEquivalent, unionEquivalent
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
fwd
private final SetMultimap.Immutable<K,V> fwd
-
bwd
private final SetMultimap.Immutable<V,K> bwd
-
-
Constructor Detail
-
PersistentBidirectionalTrieSetMultimap
public PersistentBidirectionalTrieSetMultimap(SetMultimap.Immutable<K,V> fwd, SetMultimap.Immutable<V,K> bwd)
-
-
Method Detail
-
of
public static final <K,V> BinaryRelation.Immutable<K,V> of()
-
transientOf
public static final <K,V> BinaryRelation.Transient<K,V> transientOf()
-
wireTuple
private static <K,V> BinaryRelation.Immutable<K,V> wireTuple(K key, V value, java.util.function.BiFunction<K,V,? extends SetMultimap.Immutable<K,V>> fwdMerger, java.util.function.BiFunction<V,K,? extends SetMultimap.Immutable<V,K>> bwdMerger)
-
batchWireTuple
private static <K,V> BinaryRelation.Immutable<K,V> batchWireTuple(K key, Set.Immutable<V> values, java.util.function.BiFunction<K,Set.Immutable<V>,? extends SetMultimap.Immutable<K,V>> fwdMerger, java.util.function.BiFunction<Set.Immutable<V>,K,? extends SetMultimap.Immutable<V,K>> bwdMerger)
-
inverse
public BinaryRelation.Immutable<V,K> inverse()
- Specified by:
inversein interfaceBinaryRelation<K,V>- Specified by:
inversein interfaceBinaryRelation.Immutable<K,V>
-
toSetMultimap
public SetMultimap<K,V> toSetMultimap()
- Specified by:
toSetMultimapin interfaceBinaryRelation<K,V>
-
size
public int size()
Description copied from interface:SetMultimapReturn the number of key-value pairs contained in this multimap.- Specified by:
sizein interfaceSetMultimap<K,V>- Returns:
- number of key-value pairs in this multimap
-
sizeDistinct
public int sizeDistinct()
- Specified by:
sizeDistinctin interfaceSetMultimap<K,V>
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmptyin interfaceSetMultimap<K,V>
-
containsKey
public boolean containsKey(java.lang.Object o)
- Specified by:
containsKeyin interfaceSetMultimap<K,V>
-
containsValue
public boolean containsValue(java.lang.Object o)
- Specified by:
containsValuein interfaceSetMultimap<K,V>
-
containsEntry
public boolean containsEntry(java.lang.Object o0, java.lang.Object o1)- Specified by:
containsEntryin interfaceSetMultimap<K,V>
-
get
public Set.Immutable<V> get(java.lang.Object o)
- Specified by:
getin interfaceSetMultimap<K,V>
-
keySet
public java.util.Set<K> keySet()
- Specified by:
keySetin interfaceSetMultimap<K,V>
-
values
public java.util.Collection<V> values()
- Specified by:
valuesin interfaceSetMultimap<K,V>
-
entrySet
public java.util.Set<java.util.Map.Entry<K,V>> entrySet()
- Specified by:
entrySetin interfaceSetMultimap<K,V>
-
keyIterator
public java.util.Iterator<K> keyIterator()
- Specified by:
keyIteratorin interfaceSetMultimap<K,V>
-
valueIterator
public java.util.Iterator<V> valueIterator()
- Specified by:
valueIteratorin interfaceSetMultimap<K,V>
-
entryIterator
public java.util.Iterator<java.util.Map.Entry<K,V>> entryIterator()
- Specified by:
entryIteratorin interfaceSetMultimap<K,V>
-
nativeEntryIterator
public java.util.Iterator<java.util.Map.Entry<K,java.lang.Object>> nativeEntryIterator() throws java.lang.UnsupportedOperationException
Description copied from interface:SetMultimapIterates over the raw internal structure. Optional operation.- Specified by:
nativeEntryIteratorin interfaceSetMultimap<K,V>- Returns:
- native iterator, if supported
- Throws:
java.lang.UnsupportedOperationException
-
tupleIterator
public <T> java.util.Iterator<T> tupleIterator(java.util.function.BiFunction<K,V,T> dataConverter)
- Specified by:
tupleIteratorin interfaceSetMultimap<K,V>
-
tupleStream
public <T> java.util.stream.Stream<T> tupleStream(java.util.function.BiFunction<K,V,T> dataConverter)
- Specified by:
tupleStreamin interfaceSetMultimap<K,V>
-
__put
public SetMultimap.Immutable<K,V> __put(K key, V value)
- Specified by:
__putin interfaceSetMultimap.Immutable<K,V>
-
__put
public SetMultimap.Immutable<K,V> __put(K key, Set.Immutable<V> values)
- Specified by:
__putin interfaceSetMultimap.Immutable<K,V>
-
__insert
public SetMultimap.Immutable<K,V> __insert(K key, V value)
- Specified by:
__insertin interfaceSetMultimap.Immutable<K,V>
-
__insert
public SetMultimap.Immutable<K,V> __insert(K key, Set.Immutable<V> values)
- Specified by:
__insertin interfaceSetMultimap.Immutable<K,V>
-
__remove
public SetMultimap.Immutable<K,V> __remove(K key)
- Specified by:
__removein interfaceSetMultimap.Immutable<K,V>
-
__remove
public SetMultimap.Immutable<K,V> __remove(K key, V value)
- Specified by:
__removein interfaceSetMultimap.Immutable<K,V>
-
hashCode
public int hashCode()
Description copied from interface:SetMultimapReturns the hash code for this multimap. The hash code is defined to equal the hash of aSetview (rather than to equal the hash code ofMap).- Specified by:
hashCodein interfaceSetMultimap<K,V>- Overrides:
hashCodein classjava.lang.Object- Returns:
- the hash code for this multimap
-
equals
public boolean equals(java.lang.Object other)
Description copied from interface:SetMultimapCompares the specified object for equality against this multimap. The notion of equality is equal to theSetview of a multimap, i.e., all key-value pairs have to equal.- Specified by:
equalsin interfaceSetMultimap<K,V>- Overrides:
equalsin classjava.lang.Object- Parameters:
other- the object that is checked for equality against this multimap- Returns:
trueif the specified object is equal to this map
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
isTransientSupported
public boolean isTransientSupported()
- Specified by:
isTransientSupportedin interfaceBinaryRelation.Immutable<K,V>- Specified by:
isTransientSupportedin interfaceSetMultimap.Immutable<K,V>
-
asTransient
public BinaryRelation.Transient<K,V> asTransient()
- Specified by:
asTransientin interfaceBinaryRelation.Immutable<K,V>- Specified by:
asTransientin interfaceSetMultimap.Immutable<K,V>
-
-