Class ExistenceNode
java.lang.Object
tools.refinery.interpreter.rete.network.BaseNode
tools.refinery.interpreter.rete.network.StandardNode
tools.refinery.interpreter.rete.index.DualInputNode
tools.refinery.interpreter.rete.index.ExistenceNode
- All Implemented Interfaces:
NetworkStructureChangeSensitiveNode
,Node
,Supplier
Propagates all substitutions arriving at the PRIMARY slot if and only if (a matching substitution on the SECONDARY is
present) xor (NEGATIVE).
The negative parameter specifies whether this node checks for existence or non-existence.
It is mandatory in differential dataflow evaluation that the secondary parent is in an upstream dependency component (so that every secondary tuple comes with zero timestamp).
-
Nested Class Summary
Nested classes/interfaces inherited from class tools.refinery.interpreter.rete.index.DualInputNode
DualInputNode.NetworkStructureChangeSensitiveLogic, DualInputNode.Side
-
Field Summary
FieldsFields inherited from class tools.refinery.interpreter.rete.index.DualInputNode
coincidence, complementerSecondaryMask, indexerGroupCache, logic, primarySlot, secondarySlot
Fields inherited from class tools.refinery.interpreter.rete.network.StandardNode
childMailboxes, children
Fields inherited from class tools.refinery.interpreter.rete.network.BaseNode
nodeId, reteContainer, tag, traceInfos
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionSimulates the behavior of the node for calibration purposes only.void
At the time of the invocation, the dependency graph has already been updated.Methods inherited from class tools.refinery.interpreter.rete.index.DualInputNode
assignTraceInfo, connectToIndexers, createLogic, getPrimarySlot, getSecondarySlot, getSlot, getTimeline, pullInto, pullIntoWithTimeline, refreshIndexerGroupCache, retrieveOpposites, setComplementerSecondaryMask, unify, unify
Methods inherited from class tools.refinery.interpreter.rete.network.StandardNode
appendChild, constructIndex, getChildMailboxes, getPulledContents, getReceivers, issueError, propagateUpdate, removeChild
Methods inherited from class tools.refinery.interpreter.rete.network.BaseNode
acceptPropagatedTraceInfo, getContainer, getNodeId, getTag, getTraceInfoPatternsEnumerated, getTraceInfos, setTag, toString, toStringCore
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface tools.refinery.interpreter.rete.network.Node
acceptPropagatedTraceInfo, getCommunicationTracker, getContainer, getNodeId, getTag, getTraceInfos, setTag
Methods inherited from interface tools.refinery.interpreter.rete.network.Supplier
getPulledContents
-
Field Details
-
negative
protected boolean negative
-
-
Constructor Details
-
ExistenceNode
- Parameters:
reteContainer
-negative
- if false, act as existence checker, otherwise a nonexistence-checker
-
-
Method Details
-
calibrate
Description copied from class:DualInputNode
Simulates the behavior of the node for calibration purposes only.- Specified by:
calibrate
in classDualInputNode
-
networkStructureChanged
public void networkStructureChanged()Description copied from interface:NetworkStructureChangeSensitiveNode
At the time of the invocation, the dependency graph has already been updated.- Specified by:
networkStructureChanged
in interfaceNetworkStructureChangeSensitiveNode
- Overrides:
networkStructureChanged
in classDualInputNode
-
createTimelessLogic
- Specified by:
createTimelessLogic
in classDualInputNode
-
createTimelyLogic
- Specified by:
createTimelyLogic
in classDualInputNode
-