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>
bwd
private SetMultimap.Immutable<K,V>
fwd
private static long
serialVersionUID
-
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)
boolean
containsEntry(java.lang.Object o0, java.lang.Object o1)
boolean
containsKey(java.lang.Object o)
boolean
containsValue(java.lang.Object o)
java.util.Iterator<java.util.Map.Entry<K,V>>
entryIterator()
java.util.Set<java.util.Map.Entry<K,V>>
entrySet()
boolean
equals(java.lang.Object other)
Compares the specified object for equality against this multimap.Set.Immutable<V>
get(java.lang.Object o)
int
hashCode()
Returns the hash code for this multimap.BinaryRelation.Immutable<V,K>
inverse()
boolean
isEmpty()
boolean
isTransientSupported()
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()
int
size()
Return the number of key-value pairs contained in this multimap.int
sizeDistinct()
SetMultimap<K,V>
toSetMultimap()
java.lang.String
toString()
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:
inverse
in interfaceBinaryRelation<K,V>
- Specified by:
inverse
in interfaceBinaryRelation.Immutable<K,V>
-
toSetMultimap
public SetMultimap<K,V> toSetMultimap()
- Specified by:
toSetMultimap
in interfaceBinaryRelation<K,V>
-
size
public int size()
Description copied from interface:SetMultimap
Return the number of key-value pairs contained in this multimap.- Specified by:
size
in interfaceSetMultimap<K,V>
- Returns:
- number of key-value pairs in this multimap
-
sizeDistinct
public int sizeDistinct()
- Specified by:
sizeDistinct
in interfaceSetMultimap<K,V>
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interfaceSetMultimap<K,V>
-
containsKey
public boolean containsKey(java.lang.Object o)
- Specified by:
containsKey
in interfaceSetMultimap<K,V>
-
containsValue
public boolean containsValue(java.lang.Object o)
- Specified by:
containsValue
in interfaceSetMultimap<K,V>
-
containsEntry
public boolean containsEntry(java.lang.Object o0, java.lang.Object o1)
- Specified by:
containsEntry
in interfaceSetMultimap<K,V>
-
get
public Set.Immutable<V> get(java.lang.Object o)
- Specified by:
get
in interfaceSetMultimap<K,V>
-
keySet
public java.util.Set<K> keySet()
- Specified by:
keySet
in interfaceSetMultimap<K,V>
-
values
public java.util.Collection<V> values()
- Specified by:
values
in interfaceSetMultimap<K,V>
-
entrySet
public java.util.Set<java.util.Map.Entry<K,V>> entrySet()
- Specified by:
entrySet
in interfaceSetMultimap<K,V>
-
keyIterator
public java.util.Iterator<K> keyIterator()
- Specified by:
keyIterator
in interfaceSetMultimap<K,V>
-
valueIterator
public java.util.Iterator<V> valueIterator()
- Specified by:
valueIterator
in interfaceSetMultimap<K,V>
-
entryIterator
public java.util.Iterator<java.util.Map.Entry<K,V>> entryIterator()
- Specified by:
entryIterator
in 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:SetMultimap
Iterates over the raw internal structure. Optional operation.- Specified by:
nativeEntryIterator
in 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:
tupleIterator
in interfaceSetMultimap<K,V>
-
tupleStream
public <T> java.util.stream.Stream<T> tupleStream(java.util.function.BiFunction<K,V,T> dataConverter)
- Specified by:
tupleStream
in interfaceSetMultimap<K,V>
-
__put
public SetMultimap.Immutable<K,V> __put(K key, V value)
- Specified by:
__put
in interfaceSetMultimap.Immutable<K,V>
-
__put
public SetMultimap.Immutable<K,V> __put(K key, Set.Immutable<V> values)
- Specified by:
__put
in interfaceSetMultimap.Immutable<K,V>
-
__insert
public SetMultimap.Immutable<K,V> __insert(K key, V value)
- Specified by:
__insert
in interfaceSetMultimap.Immutable<K,V>
-
__insert
public SetMultimap.Immutable<K,V> __insert(K key, Set.Immutable<V> values)
- Specified by:
__insert
in interfaceSetMultimap.Immutable<K,V>
-
__remove
public SetMultimap.Immutable<K,V> __remove(K key)
- Specified by:
__remove
in interfaceSetMultimap.Immutable<K,V>
-
__remove
public SetMultimap.Immutable<K,V> __remove(K key, V value)
- Specified by:
__remove
in interfaceSetMultimap.Immutable<K,V>
-
hashCode
public int hashCode()
Description copied from interface:SetMultimap
Returns the hash code for this multimap. The hash code is defined to equal the hash of aSet
view (rather than to equal the hash code ofMap
).- Specified by:
hashCode
in interfaceSetMultimap<K,V>
- Overrides:
hashCode
in classjava.lang.Object
- Returns:
- the hash code for this multimap
-
equals
public boolean equals(java.lang.Object other)
Description copied from interface:SetMultimap
Compares the specified object for equality against this multimap. The notion of equality is equal to theSet
view of a multimap, i.e., all key-value pairs have to equal.- Specified by:
equals
in interfaceSetMultimap<K,V>
- Overrides:
equals
in classjava.lang.Object
- Parameters:
other
- the object that is checked for equality against this multimap- Returns:
true
if the specified object is equal to this map
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
isTransientSupported
public boolean isTransientSupported()
- Specified by:
isTransientSupported
in interfaceBinaryRelation.Immutable<K,V>
- Specified by:
isTransientSupported
in interfaceSetMultimap.Immutable<K,V>
-
asTransient
public BinaryRelation.Transient<K,V> asTransient()
- Specified by:
asTransient
in interfaceBinaryRelation.Immutable<K,V>
- Specified by:
asTransient
in interfaceSetMultimap.Immutable<K,V>
-
-