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, parentnodeId, 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, toStringCoreacceptPropagatedTraceInfo, getNodeId, getTag, getTraceInfoPatternsEnumerated, getTraceInfos, setTag, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetBucketCount, getSignaturesget, getListeners, getMask, getParent, getTimelineacceptPropagatedTraceInfo, assignTraceInfo, getCommunicationTracker, getContainer, getNodeId, getTag, getTraceInfos, setTagprotected 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()
IndexergetActiveNode in interface Indexerprotected void propagate(Direction direction, Tuple updateElement, Tuple signature, boolean change, Timestamp timestamp)
propagate in class StandardIndexerpublic void attachListener(IndexerListener listener)
attachListener in interface IndexerattachListener in class StandardIndexerpublic void detachListener(IndexerListener listener)
detachListener in interface IndexerdetachListener in class StandardIndexerpublic void networkStructureChanged()
NetworkStructureChangeSensitiveNodenetworkStructureChanged in interface NetworkStructureChangeSensitiveNodenetworkStructureChanged in class StandardIndexerpublic abstract void propagateToListener(IndexerListener listener, Direction direction, Tuple updateElement, Timestamp timestamp)