Class UnaryMaskedTupleMemory<Timestamp extends java.lang.Comparable<Timestamp>>
- java.lang.Object
-
- org.eclipse.viatra.query.runtime.matchers.memories.MaskedTupleMemory<Timestamp>
-
- org.eclipse.viatra.query.runtime.matchers.memories.UnaryMaskedTupleMemory<Timestamp>
-
- All Implemented Interfaces:
Clearable,MaskedResumable<Timestamp>,Resumable<Timestamp>
public final class UnaryMaskedTupleMemory<Timestamp extends java.lang.Comparable<Timestamp>> extends MaskedTupleMemory<Timestamp>
Specialized for unary mask; tuples are indexed by a single column as opposed to a projection (signature) tuple.- Since:
- 2.0
-
-
Field Summary
Fields Modifier and Type Field Description protected IMultiLookup<java.lang.Object,Tuple>columnToTuplesprotected intkeyPosition-
Fields inherited from class org.eclipse.viatra.query.runtime.matchers.memories.MaskedTupleMemory
mask, owner
-
-
Constructor Summary
Constructors Constructor Description UnaryMaskedTupleMemory(TupleMask mask, CollectionsFactory.MemoryType bucketType, java.lang.Object owner)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanadd(Tuple tuple)Adds a tuple occurrence to the memory.booleanadd(Tuple tuple, Tuple signature)Adds a tuple occurrence to the memory with the given signature.protected booleanaddInternal(Tuple tuple, java.lang.Object key)voidclear()Clear all partial matchings stored in memoryjava.util.Collection<Tuple>get(ITuple signature)Retrieves tuples that have the specified signatureintgetKeysetSize()java.lang.Iterable<Tuple>getSignatures()Retrieves a read-only view of exactly those signatures for which at least one tuple is storedintgetTotalSize()java.util.Map<Tuple,Timeline<Timestamp>>getWithTimeline(ITuple signature)Retrieves the tuples and their associated timelines that have the specified signature.java.util.Iterator<Tuple>iterator()Iterates over distinct tuples stored in the memory, regardless of their signatures.booleanremove(Tuple tuple)Removes a tuple occurrence from the memory.booleanremove(Tuple tuple, Tuple signature)Removes a tuple occurrence from the memory with the given signature.protected booleanremoveInternal(Tuple tuple, java.lang.Object key)-
Methods inherited from class org.eclipse.viatra.query.runtime.matchers.memories.MaskedTupleMemory
addWithTimestamp, addWithTimestamp, create, create, create, getMask, getOrEmpty, getOrEmptyWithTimeline, getOwner, getResumableSignatures, getResumableTimestamp, initializeWith, isPresentAtInfinity, isTimely, raiseDuplicateDeletion, raiseDuplicateInsertion, removeWithTimestamp, removeWithTimestamp, resumeAt, toString
-
-
-
-
Field Detail
-
columnToTuples
protected IMultiLookup<java.lang.Object,Tuple> columnToTuples
-
keyPosition
protected final int keyPosition
-
-
Constructor Detail
-
UnaryMaskedTupleMemory
public UnaryMaskedTupleMemory(TupleMask mask, CollectionsFactory.MemoryType bucketType, java.lang.Object owner)
- Parameters:
mask- The mask used to index the matchingsowner- the object "owning" this memorybucketType- the kind of tuple collection maintained for each indexer bucket- Since:
- 2.0
-
-
Method Detail
-
clear
public void clear()
Description copied from interface:ClearableClear all partial matchings stored in memory
-
getKeysetSize
public int getKeysetSize()
- Specified by:
getKeysetSizein classMaskedTupleMemory<Timestamp extends java.lang.Comparable<Timestamp>>- Returns:
- the number of distinct signatures of all stored tuples.
-
getTotalSize
public int getTotalSize()
- Specified by:
getTotalSizein classMaskedTupleMemory<Timestamp extends java.lang.Comparable<Timestamp>>- Returns:
- the total number of distinct tuples stored. Multiple copies of the same tuple, if allowed, are counted as
one.
This is currently not cached but computed on demand. It is therefore not efficient, and shall only be used for debug / profiling purposes.
-
iterator
public java.util.Iterator<Tuple> iterator()
Description copied from class:MaskedTupleMemoryIterates over distinct tuples stored in the memory, regardless of their signatures.- Specified by:
iteratorin classMaskedTupleMemory<Timestamp extends java.lang.Comparable<Timestamp>>
-
getSignatures
public java.lang.Iterable<Tuple> getSignatures()
Description copied from class:MaskedTupleMemoryRetrieves a read-only view of exactly those signatures for which at least one tuple is stored- Specified by:
getSignaturesin classMaskedTupleMemory<Timestamp extends java.lang.Comparable<Timestamp>>
-
get
public java.util.Collection<Tuple> get(ITuple signature)
Description copied from class:MaskedTupleMemoryRetrieves tuples that have the specified signature- Specified by:
getin classMaskedTupleMemory<Timestamp extends java.lang.Comparable<Timestamp>>- Returns:
- collection of tuples found, null if none
-
getWithTimeline
public java.util.Map<Tuple,Timeline<Timestamp>> getWithTimeline(ITuple signature)
Description copied from class:MaskedTupleMemoryRetrieves the tuples and their associated timelines that have the specified signature.- Specified by:
getWithTimelinein classMaskedTupleMemory<Timestamp extends java.lang.Comparable<Timestamp>>- Returns:
- the mappings from tuples to timelines, null if there is no mapping for the signature
-
remove
public boolean remove(Tuple tuple, Tuple signature)
Description copied from class:MaskedTupleMemoryRemoves a tuple occurrence from the memory with the given signature.- Overrides:
removein classMaskedTupleMemory<Timestamp extends java.lang.Comparable<Timestamp>>- Parameters:
tuple- the tuple to be removed from the memorysignature- precomputed footprint of the tuple according to the mask- Returns:
- true if this was the the last occurrence of the signature (according to the mask)
-
remove
public boolean remove(Tuple tuple)
Description copied from class:MaskedTupleMemoryRemoves a tuple occurrence from the memory.- Overrides:
removein classMaskedTupleMemory<Timestamp extends java.lang.Comparable<Timestamp>>- Parameters:
tuple- the tuple to be removed from the memory- Returns:
- true if this was the the last occurrence of the signature (according to the mask)
-
add
public boolean add(Tuple tuple, Tuple signature)
Description copied from class:MaskedTupleMemoryAdds a tuple occurrence to the memory with the given signature.- Overrides:
addin classMaskedTupleMemory<Timestamp extends java.lang.Comparable<Timestamp>>- Parameters:
tuple- the tuple to be added to the memorysignature- precomputed footprint of the tuple according to the mask- Returns:
- true if new signature encountered (according to the mask)
-
add
public boolean add(Tuple tuple)
Description copied from class:MaskedTupleMemoryAdds a tuple occurrence to the memory.- Overrides:
addin classMaskedTupleMemory<Timestamp extends java.lang.Comparable<Timestamp>>- Parameters:
tuple- the tuple to be added to the memory- Returns:
- true if new signature encountered (according to the mask)
-
addInternal
protected boolean addInternal(Tuple tuple, java.lang.Object key)
-
removeInternal
protected boolean removeInternal(Tuple tuple, java.lang.Object key)
-
-