Package eu.bandm.tools.ops
Class UnmodifiableMultimap<A,B>
- All Implemented Interfaces:
Multimap<A,
,B> Iterable<Map.Entry<A,
,B>> Collection<Map.Entry<A,
,B>> BiPredicate<A,
,B> Set<Map.Entry<A,
B>>
abstract class UnmodifiableMultimap<A,B>
extends AbstractCollection<Map.Entry<A,B>>
implements Multimap<A,B>
A wrapper to protect the contents of an instance of Multimap.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal boolean
Adds a pair to this multimap.final boolean
Whether this multimap contains a pair with the given components.Returns the set of right components of pairs with a given left component in this multimap.imageAll
(Collection<? extends A> c) Returns the set of right components of pairs in this multimap, which have a left component in the given set.imageMap()
Returns a map which maps each A which appears as a left component to a set of all B which appear as its right component.Returns the set of left components of pairs with a given right component in this multimap.preimageAll
(Collection<? extends B> c) Returns the set of left components of pairs in this multimap, which have a right component in the given set.Returns a map which maps each B which appears as a right component to a set of all A which appear as its left component.final boolean
Removes a pair from this this multimap.final boolean
removeAllDomain
(Collection<? extends A> a) Removes all pairs with a left component in the given collection from this multimap.final boolean
final boolean
removeAllRange
(Collection<? extends B> b) Removes all pairs with a right component in the given collection from this multimap.final boolean
final boolean
removeDomain
(A a) Removes all pairs with a given left component from this multimap.final boolean
final boolean
removeRange
(B b) Removes all pairs with a given right component from this multimap.final boolean
final boolean
removeUnchecked
(Object a, Object b) final boolean
retainAllDomain
(Collection<? extends A> a) Removes all pairs with a left component which is not the given collection from this multimap.final boolean
final boolean
retainAllRange
(Collection<? extends B> b) Removes all pairs with a right component which is not the given collection from this multimap.final boolean
boolean
Methods inherited from class java.util.AbstractCollection
add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.function.BiPredicate
and, negate, or
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
Methods inherited from interface eu.bandm.tools.ops.Multimap
containsUnchecked, domain, imageAllUnchecked, imageUnchecked, preimageAllUnchecked, preimageUnchecked, range
-
Constructor Details
-
UnmodifiableMultimap
UnmodifiableMultimap()
-
-
Method Details
-
test
- Specified by:
test
in interfaceBiPredicate<A,
B>
-
add
Description copied from interface:Multimap
Adds a pair to this multimap. This operation must be stable: adding a pair thatequals
any pair contained in this multimap componentwise must not change this multimap. -
contains
Description copied from interface:Multimap
Whether this multimap contains a pair with the given components. -
remove
Description copied from interface:Multimap
Removes a pair from this this multimap. Removing a pair thatequals
no pair contained in this multimap componentwise must not change this multimap. -
removeUnchecked
- Specified by:
removeUnchecked
in interfaceMultimap<A,
B>
-
removeDomain
Description copied from interface:Multimap
Removes all pairs with a given left component from this multimap. The effect of the implementation on this multimap must be equivalent to the following code:removeDomain(final A a) { for (B b : new HashSet<B>(range())) remove(a, b) ; }
- Specified by:
removeDomain
in interfaceMultimap<A,
B> - Parameters:
a
- the left component of all pairs to remove.- Returns:
true
if this multimap has been changed by this operation,false
otherwise.
-
removeDomainUnchecked
-
removeRange
Description copied from interface:Multimap
Removes all pairs with a given right component from this multimap. The effect of the implementation on this multimap must be equivalent to the following code:removeRange(final B b) { for (A a : new HashSet<A>(domain())) remove(a, b) ; }
- Specified by:
removeRange
in interfaceMultimap<A,
B> - Parameters:
b
- the right component of all pairs to remove.- Returns:
true
if this multimap has been changed by this operation,false
otherwise.
-
removeRangeUnchecked
-
removeAllDomain
Description copied from interface:Multimap
Removes all pairs with a left component in the given collection from this multimap.- Specified by:
removeAllDomain
in interfaceMultimap<A,
B>
-
removeAllDomainUnchecked
- Specified by:
removeAllDomainUnchecked
in interfaceMultimap<A,
B> - See Also:
-
retainAllDomain
Description copied from interface:Multimap
Removes all pairs with a left component which is not the given collection from this multimap.- Specified by:
retainAllDomain
in interfaceMultimap<A,
B>
-
retainAllDomainUnchecked
- Specified by:
retainAllDomainUnchecked
in interfaceMultimap<A,
B> - See Also:
-
removeAllRange
Description copied from interface:Multimap
Removes all pairs with a right component in the given collection from this multimap.- Specified by:
removeAllRange
in interfaceMultimap<A,
B>
-
removeAllRangeUnchecked
- Specified by:
removeAllRangeUnchecked
in interfaceMultimap<A,
B> - See Also:
-
retainAllRange
Description copied from interface:Multimap
Removes all pairs with a right component which is not the given collection from this multimap.- Specified by:
retainAllRange
in interfaceMultimap<A,
B>
-
retainAllRangeUnchecked
- Specified by:
retainAllRangeUnchecked
in interfaceMultimap<A,
B> - See Also:
-
image
Description copied from interface:Multimap
Returns the set of right components of pairs with a given left component in this multimap.The returned set need not be modifiable. The behaviour of this multimap after successfully modifying the returned set is unspecified.
-
imageAll
Description copied from interface:Multimap
Returns the set of right components of pairs in this multimap, which have a left component in the given set. -
imageMap
Description copied from interface:Multimap
Returns a map which maps each A which appears as a left component to a set of all B which appear as its right component. -
preimage
Description copied from interface:Multimap
Returns the set of left components of pairs with a given right component in this multimap.The returned set need not be modifiable. The behaviour of this multimap after successfully modifying the returned set is unspecified.
-
preimageAll
Description copied from interface:Multimap
Returns the set of left components of pairs in this multimap, which have a right component in the given set.- Specified by:
preimageAll
in interfaceMultimap<A,
B>
-
preimageMap
Description copied from interface:Multimap
Returns a map which maps each B which appears as a right component to a set of all A which appear as its left component.- Specified by:
preimageMap
in interfaceMultimap<A,
B>
-