public abstract class SpecializedProjectionIndexer extends StandardIndexer implements ProjectionIndexer
All specialized projection indexers of a single node will share the same listener list, so that notification order is maintained (see Bug 518434).
Modifier and Type | Class and Description |
---|---|
static class |
SpecializedProjectionIndexer.ListenerSubscription
Infrastructure to share subscriptions between specialized indexers of the same parent node.
|
Modifier and Type | Field and Description |
---|---|
protected Node |
activeNode |
protected java.util.List<SpecializedProjectionIndexer.ListenerSubscription> |
subscriptions |
mask, parent
nodeId, reteContainer, tag, traceInfos
Constructor and Description |
---|
SpecializedProjectionIndexer(ReteContainer reteContainer,
TupleMask mask,
Supplier parent,
Node activeNode,
java.util.List<SpecializedProjectionIndexer.ListenerSubscription> subscriptions) |
Modifier and Type | Method and Description |
---|---|
void |
attachListener(IndexerListener listener) |
void |
detachListener(IndexerListener listener) |
Node |
getActiveNode()
This indexer will be updated whenever a Rete update is sent to the active node (or an equivalent time slot
allotted to it).
|
java.util.List<SpecializedProjectionIndexer.ListenerSubscription> |
getSubscriptions() |
void |
networkStructureChanged()
At the time of the invocation, the dependency graph has already been updated.
|
protected void |
propagate(Direction direction,
Tuple updateElement,
Tuple signature,
boolean change,
Timestamp timestamp) |
abstract void |
propagateToListener(IndexerListener listener,
Direction direction,
Tuple updateElement,
Timestamp timestamp) |
assignTraceInfo, getContainer, getListeners, getMask, getParent, toStringCore
acceptPropagatedTraceInfo, getNodeId, getTag, getTraceInfoPatternsEnumerated, getTraceInfos, setTag, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getBucketCount, getSignatures
get, getListeners, getMask, getParent, getTimeline
acceptPropagatedTraceInfo, assignTraceInfo, getCommunicationTracker, getContainer, getNodeId, getTag, getTraceInfos, setTag
protected Node activeNode
protected java.util.List<SpecializedProjectionIndexer.ListenerSubscription> subscriptions
public SpecializedProjectionIndexer(ReteContainer reteContainer, TupleMask mask, Supplier parent, Node activeNode, java.util.List<SpecializedProjectionIndexer.ListenerSubscription> subscriptions)
public java.util.List<SpecializedProjectionIndexer.ListenerSubscription> getSubscriptions()
public Node getActiveNode()
Indexer
getActiveNode
in interface Indexer
protected void propagate(Direction direction, Tuple updateElement, Tuple signature, boolean change, Timestamp timestamp)
propagate
in class StandardIndexer
public void attachListener(IndexerListener listener)
attachListener
in interface Indexer
attachListener
in class StandardIndexer
public void detachListener(IndexerListener listener)
detachListener
in interface Indexer
detachListener
in class StandardIndexer
public void networkStructureChanged()
NetworkStructureChangeSensitiveNode
networkStructureChanged
in interface NetworkStructureChangeSensitiveNode
networkStructureChanged
in class StandardIndexer
public abstract void propagateToListener(IndexerListener listener, Direction direction, Tuple updateElement, Timestamp timestamp)