Interface IMultiLookupAbstract.ToMultisetsAbstract<Key,Value>
- All Superinterfaces:
IMultiLookup<Key,,Value> IMultiLookupAbstract<Key,Value, MarkedMemory.MarkedMultiset<Value>>
- Enclosing interface:
IMultiLookupAbstract<Key,Value, Bucket extends MarkedMemory<Value>>
public static interface IMultiLookupAbstract.ToMultisetsAbstract<Key,Value>
extends IMultiLookupAbstract<Key,Value,MarkedMemory.MarkedMultiset<Value>>
A multi-lookup whose buckets are multisets.
Not intended as an API, but rather as a 'base class' for implementors. Realized as an interface with default implementations, instead of an abstract class, to ensure that implementors can easily choose a base class such as UnifiedMap to augment.
Implementor should inherit from a Mapinvalid input: '<'Key, Object>-like class (primitive map possible) and bind the lowLevel* methods accordingly.
-
Nested Class Summary
Nested classes/interfaces inherited from interface tools.refinery.interpreter.matchers.util.IMultiLookup
IMultiLookup.ChangeGranularityNested classes/interfaces inherited from interface tools.refinery.interpreter.matchers.util.IMultiLookupAbstract
IMultiLookupAbstract.ToMultisetsAbstract<Key,Value>, IMultiLookupAbstract.ToSetsAbstract<Key, Value> -
Method Summary
Modifier and TypeMethodDescriptiondefault booleanaddToBucket(MarkedMemory.MarkedMultiset<Value> bucket, Value value, boolean throwIfImpossible) Increases the multiplicity of the value in the bucket.default ValueasSingleton(MarkedMemory.MarkedMultiset<Value> bucket) Checks whether the bucket is a singleton, i.e.default MarkedMemory.MarkedMultiset<Value> createDeltaBucket(Value positive, Value negative) default MarkedMemory.MarkedMultiset<Value> createSingletonBucket(Value value) default booleandefault booleandefault booleanremoveFromBucket(MarkedMemory.MarkedMultiset<Value> bucket, Value value, boolean throwIfImpossible) Decreases the multiplicity of the value in the bucket.Methods inherited from interface tools.refinery.interpreter.matchers.util.IMultiLookup
clear, isEmpty, lookupOrEmpty, lookupUnsafeOrEmptyMethods inherited from interface tools.refinery.interpreter.matchers.util.IMultiLookupAbstract
addPair, addPairInternal, addPairOrNop, addPairPositiveMultiplicity, countKeys, distinctKeys, distinctKeysStream, distinctValues, distinctValuesStream, handleSingleton, lookup, lookupAndRemoveAll, lookupExists, lookupUnsafe, lowLevelGet, lowLevelGetUnsafe, lowLevelKeySet, lowLevelPut, lowLevelPutIfAbsent, lowLevelRemove, lowLevelSize, lowLevelValues, removePair, removePairInternal, removePairOrNop, yieldSingleton
-
Method Details
-
createMarkedMultiset
MarkedMemory.MarkedMultiset<Value> createMarkedMultiset()- Returns:
- a fresh, empty marked multiset
-
negativesAllowed
default boolean negativesAllowed()- Specified by:
negativesAllowedin interfaceIMultiLookupAbstract<Key,Value, MarkedMemory.MarkedMultiset<Value>> - Returns:
- iff negative multiplicites are allowed
-
duplicatesAllowed
default boolean duplicatesAllowed()- Specified by:
duplicatesAllowedin interfaceIMultiLookupAbstract<Key,Value, MarkedMemory.MarkedMultiset<Value>> - Returns:
- iff larger-than-1 multiplicites are allowed
-
addToBucket
default boolean addToBucket(MarkedMemory.MarkedMultiset<Value> bucket, Value value, boolean throwIfImpossible) Description copied from interface:IMultiLookupAbstractIncreases the multiplicity of the value in the bucket.- Specified by:
addToBucketin interfaceIMultiLookupAbstract<Key,Value, MarkedMemory.MarkedMultiset<Value>> - Returns:
- true iff non-duplicate
-
removeFromBucket
default boolean removeFromBucket(MarkedMemory.MarkedMultiset<Value> bucket, Value value, boolean throwIfImpossible) Description copied from interface:IMultiLookupAbstractDecreases the multiplicity of the value in the bucket.- Specified by:
removeFromBucketin interfaceIMultiLookupAbstract<Key,Value, MarkedMemory.MarkedMultiset<Value>> - Returns:
- false if removing duplicate value
-
asSingleton
Description copied from interface:IMultiLookupAbstractChecks whether the bucket is a singleton, i.e. it contains a single value with multiplicity +1- Specified by:
asSingletonin interfaceIMultiLookupAbstract<Key,Value, MarkedMemory.MarkedMultiset<Value>> - Returns:
- the singleton value, or null if the bucket is not singleton
-
createSingletonBucket
- Specified by:
createSingletonBucketin interfaceIMultiLookupAbstract<Key,Value, MarkedMemory.MarkedMultiset<Value>> - Returns:
- a new bucket consisting of a sole value
-
createDeltaBucket
- Specified by:
createDeltaBucketin interfaceIMultiLookupAbstract<Key,Value, MarkedMemory.MarkedMultiset<Value>> - Parameters:
positive- the previously existing value, or null if the delta is to contain a single negative tuple- Returns:
- a new bucket consisting of a delta of two values
-