Class GenericProjectionIndexer
- java.lang.Object
-
- org.eclipse.viatra.query.runtime.rete.network.BaseNode
-
- org.eclipse.viatra.query.runtime.rete.index.StandardIndexer
-
- org.eclipse.viatra.query.runtime.rete.index.IndexerWithMemory
-
- org.eclipse.viatra.query.runtime.rete.index.GenericProjectionIndexer
-
- All Implemented Interfaces:
java.lang.Iterable<Tuple>
,Indexer
,IterableIndexer
,ProjectionIndexer
,org.eclipse.viatra.query.runtime.rete.network.communication.timely.ResumableNode
,IGroupable
,NetworkStructureChangeSensitiveNode
,Node
,Receiver
- Direct Known Subclasses:
OnetimeIndexer
public class GenericProjectionIndexer extends IndexerWithMemory implements ProjectionIndexer
A generic Indexer capable of indexing along any valid TupleMask. Does not keep track of parents, because will not ever pull parents.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.eclipse.viatra.query.runtime.rete.index.IndexerWithMemory
IndexerWithMemory.NetworkStructureChangeSensitiveLogic
-
-
Field Summary
-
Fields inherited from class org.eclipse.viatra.query.runtime.rete.index.IndexerWithMemory
group, logic, mailbox, memory
-
Fields inherited from class org.eclipse.viatra.query.runtime.rete.index.StandardIndexer
mask, parent
-
Fields inherited from class org.eclipse.viatra.query.runtime.rete.network.BaseNode
nodeId, reteContainer, tag, traceInfos
-
-
Constructor Summary
Constructors Constructor Description GenericProjectionIndexer(ReteContainer reteContainer, TupleMask mask)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.Collection<Tuple>
get(Tuple signature)
Receiver
getActiveNode()
This indexer will be updated whenever a Rete update is sent to the active node (or an equivalent time slot allotted to it).int
getBucketCount()
java.lang.Iterable<Tuple>
getSignatures()
A view consisting of exactly those signatures whose tuple group is not emptyjava.util.Map<Tuple,Timeline<Timestamp>>
getTimeline(Tuple signature)
java.util.Iterator<Tuple>
iterator()
protected void
update(Direction direction, Tuple updateElement, Tuple signature, boolean change, Timestamp timestamp)
Refined version of update-
Methods inherited from class org.eclipse.viatra.query.runtime.rete.index.IndexerWithMemory
appendParent, createLogic, getCurrentGroup, getMailbox, getMemory, getParents, getResumableTimestamp, instantiateMailbox, networkStructureChanged, removeParent, resumeAt, setCurrentGroup, update
-
Methods inherited from class org.eclipse.viatra.query.runtime.rete.index.StandardIndexer
assignTraceInfo, attachListener, detachListener, getContainer, getListeners, getMask, getParent, propagate, toStringCore
-
Methods inherited from class org.eclipse.viatra.query.runtime.rete.network.BaseNode
acceptPropagatedTraceInfo, getNodeId, getTag, getTraceInfoPatternsEnumerated, getTraceInfos, setTag, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.viatra.query.runtime.rete.index.Indexer
attachListener, detachListener, getListeners, getMask, getParent
-
Methods inherited from interface org.eclipse.viatra.query.runtime.rete.network.Node
acceptPropagatedTraceInfo, assignTraceInfo, getCommunicationTracker, getContainer, getNodeId, getTag, getTraceInfos, setTag
-
Methods inherited from interface org.eclipse.viatra.query.runtime.rete.network.Receiver
batchUpdate
-
-
-
-
Constructor Detail
-
GenericProjectionIndexer
public GenericProjectionIndexer(ReteContainer reteContainer, TupleMask mask)
-
-
Method Detail
-
update
protected void update(Direction direction, Tuple updateElement, Tuple signature, boolean change, Timestamp timestamp)
Description copied from class:IndexerWithMemory
Refined version of update- Specified by:
update
in classIndexerWithMemory
-
getTimeline
public java.util.Map<Tuple,Timeline<Timestamp>> getTimeline(Tuple signature)
- Specified by:
getTimeline
in interfaceIndexer
-
iterator
public java.util.Iterator<Tuple> iterator()
- Specified by:
iterator
in interfacejava.lang.Iterable<Tuple>
-
getSignatures
public java.lang.Iterable<Tuple> getSignatures()
Description copied from interface:IterableIndexer
A view consisting of exactly those signatures whose tuple group is not empty- Specified by:
getSignatures
in interfaceIterableIndexer
-
getBucketCount
public int getBucketCount()
- Specified by:
getBucketCount
in interfaceIterableIndexer
- Returns:
- the number of signatures whose tuple group is not empty
- Since:
- 2.0
-
getActiveNode
public Receiver getActiveNode()
Description copied from interface:Indexer
This indexer will be updated whenever a Rete update is sent to the active node (or an equivalent time slot allotted to it). The active node is typically the indexer itself, but it can be a different node such as its parent.- Specified by:
getActiveNode
in interfaceIndexer
- Returns:
- the active node that operates this indexer
-
-