Drools :: ReteOO 6.0.0.CR2

org.drools.reteoo.nodes
Class ReteAccumulateNode

java.lang.Object
  extended by org.drools.core.common.BaseNode
      extended by org.drools.core.reteoo.LeftTupleSource
          extended by org.drools.core.reteoo.BetaNode
              extended by org.drools.core.reteoo.AccumulateNode
                  extended by org.drools.reteoo.nodes.ReteAccumulateNode
All Implemented Interfaces:
Externalizable, Serializable, org.drools.core.common.MemoryFactory, org.drools.core.common.NetworkNode, org.drools.core.reteoo.LeftTupleSink, org.drools.core.reteoo.LeftTupleSinkNode, org.drools.core.reteoo.ObjectSink, org.drools.core.reteoo.ObjectSinkNode, org.drools.core.reteoo.RightTupleSink, org.drools.core.reteoo.Sink

public class ReteAccumulateNode
extends org.drools.core.reteoo.AccumulateNode

See Also:
Serialized Form

Nested Class Summary
static class ReteAccumulateNode.EvaluateResultConstraints
           
 
Nested classes/interfaces inherited from class org.drools.core.reteoo.AccumulateNode
org.drools.core.reteoo.AccumulateNode.AccumulateContext, org.drools.core.reteoo.AccumulateNode.AccumulateMemory, org.drools.core.reteoo.AccumulateNode.ActivitySource
 
Field Summary
 
Fields inherited from class org.drools.core.reteoo.AccumulateNode
accumulate, resultBinder, resultConstraints, unwrapRightObject
 
Fields inherited from class org.drools.core.reteoo.BetaNode
concurrentRightTupleMemory, constraints, indexedUnificationJoin, log, objectMemory, rightInput, tupleMemoryEnabled
 
Fields inherited from class org.drools.core.reteoo.LeftTupleSource
leftInput, sink
 
Fields inherited from class org.drools.core.common.BaseNode
associations, id, partitionId, partitionsEnabled, streamMode
 
Constructor Summary
ReteAccumulateNode()
           
ReteAccumulateNode(int id, org.drools.core.reteoo.LeftTupleSource leftInput, org.drools.core.reteoo.ObjectSource rightInput, org.drools.core.spi.AlphaNodeFieldConstraint[] resultConstraints, org.drools.core.common.BetaConstraints sourceBinder, org.drools.core.common.BetaConstraints resultBinder, org.drools.core.rule.Accumulate accumulate, boolean unwrapRightObject, org.drools.core.reteoo.builder.BuildContext context)
           
 
Method Summary
 void assertLeftTuple(org.drools.core.reteoo.LeftTuple leftTuple, org.drools.core.spi.PropagationContext context, org.drools.core.common.InternalWorkingMemory workingMemory)
           
 void assertObject(org.drools.core.common.InternalFactHandle factHandle, org.drools.core.spi.PropagationContext pctx, org.drools.core.common.InternalWorkingMemory wm)
           
 void assertRightTuple(org.drools.core.reteoo.RightTuple rightTuple, org.drools.core.spi.PropagationContext context, org.drools.core.common.InternalWorkingMemory workingMemory)
           
 void attach(org.drools.core.reteoo.builder.BuildContext context)
           
 void doCollectAncestors(org.drools.core.reteoo.NodeSet nodeSet)
           
 void doRemove(org.drools.core.reteoo.RuleRemovalContext context, org.drools.core.reteoo.ReteooBuilder builder, org.drools.core.common.InternalWorkingMemory[] workingMemories)
           
 void evaluateResultConstraints(org.drools.core.reteoo.AccumulateNode.ActivitySource source, org.drools.core.reteoo.LeftTuple leftTuple, org.drools.core.spi.PropagationContext context, org.drools.core.common.InternalWorkingMemory workingMemory, org.drools.core.reteoo.AccumulateNode.AccumulateMemory memory, org.drools.core.reteoo.AccumulateNode.AccumulateContext accctx, boolean useLeftMemory)
          Evaluate result constraints and propagate assert in case they are true
 org.drools.core.reteoo.LeftTuple getFirstMatch(org.drools.core.reteoo.LeftTuple leftTuple, org.drools.core.reteoo.AccumulateNode.AccumulateContext accctx, boolean isUpdatingSink)
          Skips the propagated tuple handles and return the first handle in the list that correspond to a match
 void modifyLeftTuple(org.drools.core.common.InternalFactHandle factHandle, org.drools.core.reteoo.ModifyPreviousTuples modifyPreviousTuples, org.drools.core.spi.PropagationContext context, org.drools.core.common.InternalWorkingMemory workingMemory)
           
 void modifyLeftTuple(org.drools.core.reteoo.LeftTuple leftTuple, org.drools.core.spi.PropagationContext context, org.drools.core.common.InternalWorkingMemory workingMemory)
           
 void modifyObject(org.drools.core.common.InternalFactHandle factHandle, org.drools.core.reteoo.ModifyPreviousTuples modifyPreviousTuples, org.drools.core.spi.PropagationContext context, org.drools.core.common.InternalWorkingMemory workingMemory)
           
 void modifyRightTuple(org.drools.core.reteoo.RightTuple rightTuple, org.drools.core.spi.PropagationContext context, org.drools.core.common.InternalWorkingMemory workingMemory)
           
 void retractLeftTuple(org.drools.core.reteoo.LeftTuple leftTuple, org.drools.core.spi.PropagationContext context, org.drools.core.common.InternalWorkingMemory workingMemory)
           
 void retractRightTuple(org.drools.core.reteoo.RightTuple rightTuple, org.drools.core.spi.PropagationContext pctx, org.drools.core.common.InternalWorkingMemory workingMemory)
           
protected  org.drools.core.reteoo.LeftTuple[] splitList(org.drools.core.reteoo.LeftTuple parent, org.drools.core.reteoo.AccumulateNode.AccumulateContext accctx, boolean isUpdatingSink)
           
 void updateSink(org.drools.core.reteoo.LeftTupleSink sink, org.drools.core.spi.PropagationContext context, org.drools.core.common.InternalWorkingMemory workingMemory)
           
 
Methods inherited from class org.drools.core.reteoo.AccumulateNode
createLeftTuple, createLeftTuple, createLeftTuple, createLeftTuple, createLeftTuple, createMemory, createPeer, createResultFactHandle, doCollectAncestors, doRemove, equals, getAccumulate, getResultBinder, getResultConstraints, getType, hashCode, isUnwrapRightObject, readExternal, writeExternal
 
Methods inherited from class org.drools.core.reteoo.BetaNode
byPassModifyToBetaNode, createRightTuple, doDeleteRightTuple, doUpdateRightTuple, dumpMemory, getBetaMemory, getBetaMemoryFromRightInput, getConstraints, getFirstLeftTuple, getFirstLeftTuple, getFirstRightTuple, getFirstRightTuple, getLeftIterator, getLeftTupleSource, getNextLeftTupleSinkNode, getNextObjectSinkNode, getObjectTypeNode, getPreviousLeftTupleSinkNode, getPreviousObjectSinkNode, getRawConstraints, getRightDeclaredMask, getRightInferredMask, getRightInput, getRightInputOtnId, getRightIterator, getRightIterator, getRightNegativeMask, getRules, initDeclaredMask, initInferredMask, initInferredMask, isConcurrentRightTupleMemory, isIndexedUnificationJoin, isLeftTupleMemoryEnabled, isObjectMemoryEnabled, isRightInputIsRiaNode, networkUpdated, setConcurrentRightTupleMemory, setConstraints, setLeftListenedProperties, setLeftTupleMemoryEnabled, setNextLeftTupleSinkNode, setNextObjectSinkNode, setObjectMemoryEnabled, setPreviousLeftTupleSinkNode, setPreviousObjectSinkNode, setRightDeclaredMask, setRightInputOtnId, setUnificationJoin, toString, unwrapRightInput
 
Methods inherited from class org.drools.core.reteoo.LeftTupleSource
addTupleSink, addTupleSink, addTupleSink, getLeftDeclaredMask, getLeftInferredMask, getLeftInputOtnId, getLeftNegativeMask, getObjectType, getSinkPropagator, initMasks, isInUse, removeTupleSink, setLeftInferredMask, setLeftInputOtnId, setLeftTupleSource
 
Methods inherited from class org.drools.core.common.BaseNode
addAssociation, attach, collectAncestors, getAssociations, getId, getPartitionId, isStreamMode, remove, removeAssociation, setId, setPartitionId
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.drools.core.reteoo.LeftTupleSink
getLeftInferredMask, getLeftInputOtnId, setLeftInputOtnId
 
Methods inherited from interface org.drools.core.common.NetworkNode
getAssociations, getId, getPartitionId
 
Methods inherited from interface org.drools.core.common.MemoryFactory
getId
 

Constructor Detail

ReteAccumulateNode

public ReteAccumulateNode()

ReteAccumulateNode

public ReteAccumulateNode(int id,
                          org.drools.core.reteoo.LeftTupleSource leftInput,
                          org.drools.core.reteoo.ObjectSource rightInput,
                          org.drools.core.spi.AlphaNodeFieldConstraint[] resultConstraints,
                          org.drools.core.common.BetaConstraints sourceBinder,
                          org.drools.core.common.BetaConstraints resultBinder,
                          org.drools.core.rule.Accumulate accumulate,
                          boolean unwrapRightObject,
                          org.drools.core.reteoo.builder.BuildContext context)
Method Detail

modifyLeftTuple

public void modifyLeftTuple(org.drools.core.common.InternalFactHandle factHandle,
                            org.drools.core.reteoo.ModifyPreviousTuples modifyPreviousTuples,
                            org.drools.core.spi.PropagationContext context,
                            org.drools.core.common.InternalWorkingMemory workingMemory)
Specified by:
modifyLeftTuple in interface org.drools.core.reteoo.LeftTupleSink
Overrides:
modifyLeftTuple in class org.drools.core.reteoo.AccumulateNode

assertObject

public void assertObject(org.drools.core.common.InternalFactHandle factHandle,
                         org.drools.core.spi.PropagationContext pctx,
                         org.drools.core.common.InternalWorkingMemory wm)
Specified by:
assertObject in interface org.drools.core.reteoo.ObjectSink
Overrides:
assertObject in class org.drools.core.reteoo.BetaNode

doCollectAncestors

public void doCollectAncestors(org.drools.core.reteoo.NodeSet nodeSet)
Overrides:
doCollectAncestors in class org.drools.core.reteoo.AccumulateNode

attach

public void attach(org.drools.core.reteoo.builder.BuildContext context)
Overrides:
attach in class org.drools.core.reteoo.BetaNode

doRemove

public void doRemove(org.drools.core.reteoo.RuleRemovalContext context,
                     org.drools.core.reteoo.ReteooBuilder builder,
                     org.drools.core.common.InternalWorkingMemory[] workingMemories)
Overrides:
doRemove in class org.drools.core.reteoo.AccumulateNode

modifyObject

public void modifyObject(org.drools.core.common.InternalFactHandle factHandle,
                         org.drools.core.reteoo.ModifyPreviousTuples modifyPreviousTuples,
                         org.drools.core.spi.PropagationContext context,
                         org.drools.core.common.InternalWorkingMemory workingMemory)
Specified by:
modifyObject in interface org.drools.core.reteoo.ObjectSink
Overrides:
modifyObject in class org.drools.core.reteoo.AccumulateNode

assertLeftTuple

public void assertLeftTuple(org.drools.core.reteoo.LeftTuple leftTuple,
                            org.drools.core.spi.PropagationContext context,
                            org.drools.core.common.InternalWorkingMemory workingMemory)
Specified by:
assertLeftTuple in interface org.drools.core.reteoo.LeftTupleSink
Overrides:
assertLeftTuple in class org.drools.core.reteoo.AccumulateNode

retractLeftTuple

public void retractLeftTuple(org.drools.core.reteoo.LeftTuple leftTuple,
                             org.drools.core.spi.PropagationContext context,
                             org.drools.core.common.InternalWorkingMemory workingMemory)
Specified by:
retractLeftTuple in interface org.drools.core.reteoo.LeftTupleSink
Overrides:
retractLeftTuple in class org.drools.core.reteoo.AccumulateNode

assertRightTuple

public void assertRightTuple(org.drools.core.reteoo.RightTuple rightTuple,
                             org.drools.core.spi.PropagationContext context,
                             org.drools.core.common.InternalWorkingMemory workingMemory)
Specified by:
assertRightTuple in interface org.drools.core.reteoo.RightTupleSink
Overrides:
assertRightTuple in class org.drools.core.reteoo.AccumulateNode

retractRightTuple

public void retractRightTuple(org.drools.core.reteoo.RightTuple rightTuple,
                              org.drools.core.spi.PropagationContext pctx,
                              org.drools.core.common.InternalWorkingMemory workingMemory)
Specified by:
retractRightTuple in interface org.drools.core.reteoo.RightTupleSink
Overrides:
retractRightTuple in class org.drools.core.reteoo.AccumulateNode

modifyLeftTuple

public void modifyLeftTuple(org.drools.core.reteoo.LeftTuple leftTuple,
                            org.drools.core.spi.PropagationContext context,
                            org.drools.core.common.InternalWorkingMemory workingMemory)
Specified by:
modifyLeftTuple in interface org.drools.core.reteoo.LeftTupleSink
Overrides:
modifyLeftTuple in class org.drools.core.reteoo.AccumulateNode

modifyRightTuple

public void modifyRightTuple(org.drools.core.reteoo.RightTuple rightTuple,
                             org.drools.core.spi.PropagationContext context,
                             org.drools.core.common.InternalWorkingMemory workingMemory)
Specified by:
modifyRightTuple in interface org.drools.core.reteoo.RightTupleSink
Overrides:
modifyRightTuple in class org.drools.core.reteoo.AccumulateNode

evaluateResultConstraints

public void evaluateResultConstraints(org.drools.core.reteoo.AccumulateNode.ActivitySource source,
                                      org.drools.core.reteoo.LeftTuple leftTuple,
                                      org.drools.core.spi.PropagationContext context,
                                      org.drools.core.common.InternalWorkingMemory workingMemory,
                                      org.drools.core.reteoo.AccumulateNode.AccumulateMemory memory,
                                      org.drools.core.reteoo.AccumulateNode.AccumulateContext accctx,
                                      boolean useLeftMemory)
Evaluate result constraints and propagate assert in case they are true


updateSink

public void updateSink(org.drools.core.reteoo.LeftTupleSink sink,
                       org.drools.core.spi.PropagationContext context,
                       org.drools.core.common.InternalWorkingMemory workingMemory)
Overrides:
updateSink in class org.drools.core.reteoo.AccumulateNode

splitList

protected org.drools.core.reteoo.LeftTuple[] splitList(org.drools.core.reteoo.LeftTuple parent,
                                                       org.drools.core.reteoo.AccumulateNode.AccumulateContext accctx,
                                                       boolean isUpdatingSink)

getFirstMatch

public org.drools.core.reteoo.LeftTuple getFirstMatch(org.drools.core.reteoo.LeftTuple leftTuple,
                                                      org.drools.core.reteoo.AccumulateNode.AccumulateContext accctx,
                                                      boolean isUpdatingSink)
Skips the propagated tuple handles and return the first handle in the list that correspond to a match

Parameters:
leftTuple -
accctx -
Returns:

Drools :: ReteOO 6.0.0.CR2

Copyright © 2001-2013 JBoss by Red Hat. All Rights Reserved.