Package org.drools.core.reteoo
Class ExistsNode
java.lang.Object
org.drools.core.common.BaseNode
org.drools.core.reteoo.LeftTupleSource
org.drools.core.reteoo.BetaNode
org.drools.core.reteoo.ExistsNode
- All Implemented Interfaces:
Serializable,NetworkNode,MemoryFactory,LeftTupleNode,LeftTupleSink,LeftTupleSinkNode,ObjectSink,ObjectSinkNode,RightTupleSink,Sink
ExistsNode extends BetaNode to perform tests for
the existence of a Fact plus one or more conditions. Where existence
is found the left ReteTuple is copied and propagated. Further to this it
maintains the "truth" by canceling any
Activations that are no longer
considered true by the retraction of ReteTuple's or FactHandleImpl.
Tuples are considered to be asserted from the left input and facts from the right input.
The BetaNode provides the BetaMemory to store asserted ReteTuples and
FactHandleImpls. Each fact handle is stored in the right
memory.- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.drools.core.reteoo.BetaNode
BetaNode.RightTupleSinkAdapter -
Field Summary
Fields inherited from class org.drools.core.reteoo.BetaNode
constraints, indexedUnificationJoin, isLogTraceEnabled, log, objectMemory, rightInput, rightInputIsRiaNode, tupleMemoryEnabledFields inherited from class org.drools.core.reteoo.LeftTupleSource
leftDeclaredMask, leftInferredMask, leftInput, leftNegativeMask, sinkFields inherited from class org.drools.core.common.BaseNode
associations, hashcode, id, memoryId, partitionId -
Constructor Summary
ConstructorsConstructorDescriptionExistsNode(int id, LeftTupleSource leftInput, ObjectSource rightInput, BetaConstraints joinNodeBinder, BuildContext context) -
Method Summary
Modifier and TypeMethodDescriptionbooleandoRemove(RuleRemovalContext context, ReteooBuilder builder) Removes the node from the network.intgetType()booleanvoidmodifyRightTuple(TupleImpl rightTuple, PropagationContext context, ReteEvaluator reteEvaluator) voidretractRightTuple(TupleImpl rightTuple, PropagationContext pctx, ReteEvaluator reteEvaluator) toString()Methods inherited from class org.drools.core.reteoo.BetaNode
assertObject, byPassModifyToBetaNode, calculateHashCode, createMemory, createRightTuple, doAttach, doDeleteRightTuple, doUpdateRightTuple, equals, getBetaMemory, getBetaMemoryFromRightInput, getConstraints, getFirstLeftTuple, getFirstRightTuple, getFirstTuple, getLeftIterator, getNextLeftTupleSinkNode, getNextObjectSinkNode, getObjectTypeNode, getPreviousLeftTupleSinkNode, getPreviousObjectSinkNode, getRawConstraints, getRightDeclaredMask, getRightInferredMask, getRightInput, getRightInputOtnId, getRightIterator, getRightNegativeMask, getRules, getStartTuple, initDeclaredMask, initInferredMask, initInferredMask, isIndexedUnificationJoin, isLeftTupleMemoryEnabled, isObjectMemoryEnabled, isRightInputIsRiaNode, isRightInputPassive, modifyObject, networkUpdated, reorderRightTuple, setLeftListenedProperties, setNextLeftTupleSinkNode, setNextObjectSinkNode, setPartitionId, setPreviousLeftTupleSinkNode, setPreviousObjectSinkNode, setRightInput, setRightInputOtnId, unwrapRightInputMethods inherited from class org.drools.core.reteoo.LeftTupleSource
addTupleSink, addTupleSink, addTupleSink, getFirstLeftTupleSinkIgnoreRemoving, getLeftDeclaredMask, getLeftInferredMask, getLeftInputOtnId, getLeftInputPattern, getLeftNegativeMask, getLeftTupleSource, getObjectCount, getObjectType, getObjectTypeForPropertyReactivity, getPathIndex, getSinkPropagator, initMasks, isInUse, removeTupleSink, setLeftInferredMask, setLeftInputOtnId, setLeftTupleSource, setNodeConstraintsPropertyReactiveMask, setObjectCount, setPartitionIdWithSinks, setSourcePartitionId, setSourcePartitionIdMethods inherited from class org.drools.core.common.BaseNode
addAssociatedTerminal, addAssociation, addAssociation, attach, getAssociatedRules, getAssociatedTerminalsSize, getAssociationsSize, getId, getMemoryId, getPartitionId, getSinks, hasAssociatedTerminal, hashCode, initMemoryId, isAssociatedWith, isStreamMode, remove, removeAssociatedTerminal, removeAssociation, setId, setStreamModeMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.drools.core.reteoo.LeftTupleNode
getLeftTupleSource, getObjectCount, getPathIndex, getSinkPropagator, setObjectCountMethods inherited from interface org.drools.core.reteoo.LeftTupleSink
getLeftInferredMask, getLeftInputOtnId, setLeftInputOtnId, setPartitionIdWithSinksMethods inherited from interface org.drools.core.common.MemoryFactory
getMemoryIdMethods inherited from interface org.drools.base.common.NetworkNode
addAssociatedTerminal, getAssociatedRules, getAssociatedTerminalsSize, getId, getPartitionId, getSinks, hasAssociatedTerminal, isAssociatedWith, removeAssociatedTerminalMethods inherited from interface org.drools.core.reteoo.ObjectSinkNode
setPartitionIdWithSinks
-
Constructor Details
-
ExistsNode
public ExistsNode() -
ExistsNode
public ExistsNode(int id, LeftTupleSource leftInput, ObjectSource rightInput, BetaConstraints joinNodeBinder, BuildContext context)
-
-
Method Details
-
toString
-
getType
public int getType()- Specified by:
getTypein interfaceNetworkNode- Specified by:
getTypein classLeftTupleSource
-
retractRightTuple
public void retractRightTuple(TupleImpl rightTuple, PropagationContext pctx, ReteEvaluator reteEvaluator) -
modifyRightTuple
public void modifyRightTuple(TupleImpl rightTuple, PropagationContext context, ReteEvaluator reteEvaluator) -
doRemove
Description copied from class:BaseNodeRemoves the node from the network. Usually from the parentObjectSourceorTupleSource -
isLeftUpdateOptimizationAllowed
public boolean isLeftUpdateOptimizationAllowed()
-