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> |
sharedSubscriptionList |
listeners, mask, parent
communicationTracker, nodeId, reteContainer, tag, traceInfos
Constructor and Description |
---|
SpecializedProjectionIndexer(ReteContainer reteContainer,
TupleMask mask,
Supplier parent,
Node activeNode,
java.util.List<SpecializedProjectionIndexer.ListenerSubscription> sharedSubscriptionList) |
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).
|
protected void |
propagate(Direction direction,
Tuple updateElement,
Tuple signature,
boolean change) |
abstract void |
propagateToListener(IndexerListener listener,
Direction direction,
Tuple updateElement) |
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
acceptPropagatedTraceInfo, assignTraceInfo, getContainer, getNodeId, getTag, getTraceInfos, setTag
protected Node activeNode
protected java.util.List<SpecializedProjectionIndexer.ListenerSubscription> sharedSubscriptionList
public SpecializedProjectionIndexer(ReteContainer reteContainer, TupleMask mask, Supplier parent, Node activeNode, java.util.List<SpecializedProjectionIndexer.ListenerSubscription> sharedSubscriptionList)
public Node getActiveNode()
Indexer
getActiveNode
in interface Indexer
protected void propagate(Direction direction, Tuple updateElement, Tuple signature, boolean change)
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 abstract void propagateToListener(IndexerListener listener, Direction direction, Tuple updateElement)