org.drools.core.reteoo
Class BetaNode
java.lang.Object
org.drools.core.common.BaseNode
org.drools.core.reteoo.LeftTupleSource
org.drools.core.reteoo.BetaNode
- All Implemented Interfaces:
- Externalizable, Serializable, MemoryFactory, NetworkNode, LeftTupleSink, LeftTupleSinkNode, ObjectSink, ObjectSinkNode, RightTupleSink, Sink
- Direct Known Subclasses:
- AccumulateNode, ExistsNode, JoinNode, NotNode
public abstract class BetaNode
- extends LeftTupleSource
- implements LeftTupleSinkNode, ObjectSinkNode, RightTupleSink, MemoryFactory
- See Also:
- Serialized Form
|
Method Summary |
void |
assertObject(InternalFactHandle factHandle,
PropagationContext pctx,
InternalWorkingMemory wm)
|
void |
attach(BuildContext context)
Attaches the node into the network. |
void |
byPassModifyToBetaNode(InternalFactHandle factHandle,
ModifyPreviousTuples modifyPreviousTuples,
PropagationContext context,
InternalWorkingMemory workingMemory)
|
Memory |
createMemory(RuleBaseConfiguration config,
InternalWorkingMemory wm)
|
RightTuple |
createRightTuple(InternalFactHandle handle,
RightTupleSink sink,
PropagationContext context)
|
void |
doDeleteRightTuple(RightTuple rightTuple,
InternalWorkingMemory wm,
BetaMemory memory)
|
void |
doUpdateRightTuple(RightTuple rightTuple,
InternalWorkingMemory wm,
BetaMemory memory)
|
void |
dumpMemory(InternalWorkingMemory workingMemory)
|
boolean |
equals(Object object)
|
static BetaMemory |
getBetaMemory(BetaNode node,
InternalWorkingMemory wm)
|
static Object |
getBetaMemoryFromRightInput(BetaNode betaNode,
InternalWorkingMemory workingMemory)
|
BetaNodeFieldConstraint[] |
getConstraints()
|
static LeftTuple |
getFirstLeftTuple(LeftTupleMemory memory,
FastIterator it)
|
LeftTuple |
getFirstLeftTuple(RightTuple rightTuple,
LeftTupleMemory memory,
PropagationContext context,
FastIterator it)
|
RightTuple |
getFirstRightTuple(LeftTuple leftTuple,
RightTupleMemory memory,
InternalFactHandle factHandle,
FastIterator it)
|
static RightTuple |
getFirstRightTuple(RightTupleMemory memory,
FastIterator it)
|
FastIterator |
getLeftIterator(LeftTupleMemory memory)
|
LeftTupleSource |
getLeftTupleSource()
|
LeftTupleSinkNode |
getNextLeftTupleSinkNode()
Returns the next node |
ObjectSinkNode |
getNextObjectSinkNode()
Returns the next node |
protected ObjectTypeNode |
getObjectTypeNode()
|
LeftTupleSinkNode |
getPreviousLeftTupleSinkNode()
Returns the previous node |
ObjectSinkNode |
getPreviousObjectSinkNode()
Returns the previous node |
BetaConstraints |
getRawConstraints()
|
long |
getRightDeclaredMask()
|
long |
getRightInferredMask()
|
ObjectSource |
getRightInput()
|
ObjectTypeNode.Id |
getRightInputOtnId()
|
FastIterator |
getRightIterator(RightTupleMemory memory)
|
FastIterator |
getRightIterator(RightTupleMemory memory,
RightTuple rightTuple)
|
long |
getRightNegativeMask()
|
List<String> |
getRules()
|
int |
hashCode()
The hashCode return is simply the unique id of the node. |
protected void |
initDeclaredMask(BuildContext context,
LeftTupleSource leftInput)
|
void |
initInferredMask()
|
protected void |
initInferredMask(LeftTupleSource leftInput)
|
boolean |
isConcurrentRightTupleMemory()
|
boolean |
isIndexedUnificationJoin()
|
boolean |
isLeftTupleMemoryEnabled()
|
boolean |
isObjectMemoryEnabled()
|
boolean |
isRightInputIsRiaNode()
|
void |
modifyObject(InternalFactHandle factHandle,
ModifyPreviousTuples modifyPreviousTuples,
PropagationContext context,
InternalWorkingMemory wm)
|
void |
networkUpdated(UpdateContext updateContext)
A method that is called for all nodes whose network below them
changed, after the change is complete, providing them with an oportunity
for state update |
void |
readExternal(ObjectInput in)
|
void |
setConcurrentRightTupleMemory(boolean concurrentRightTupleMemory)
|
void |
setConstraints(BetaConstraints constraints)
|
protected void |
setLeftListenedProperties(List<String> leftListenedProperties)
|
void |
setLeftTupleMemoryEnabled(boolean tupleMemoryEnabled)
|
void |
setNextLeftTupleSinkNode(LeftTupleSinkNode next)
Sets the next node |
void |
setNextObjectSinkNode(ObjectSinkNode next)
Sets the next node |
void |
setObjectMemoryEnabled(boolean objectMemory)
|
void |
setPreviousLeftTupleSinkNode(LeftTupleSinkNode previous)
Sets the previous node |
void |
setPreviousObjectSinkNode(ObjectSinkNode previous)
Sets the previous node |
void |
setRightDeclaredMask(long rightDeclaredMask)
|
void |
setRightInputOtnId(ObjectTypeNode.Id rightInputOtnId)
|
void |
setUnificationJoin()
|
String |
toString()
|
ObjectSource |
unwrapRightInput()
|
void |
writeExternal(ObjectOutput out)
|
| Methods inherited from class org.drools.core.reteoo.LeftTupleSource |
addTupleSink, addTupleSink, addTupleSink, createPeer, getLeftDeclaredMask, getLeftInferredMask, getLeftInputOtnId, getLeftNegativeMask, getObjectType, getSinkPropagator, getType, initMasks, isInUse, removeTupleSink, setLeftInferredMask, setLeftInputOtnId, setLeftTupleSource, updateSink |
| Methods inherited from class org.drools.core.common.BaseNode |
addAssociation, attach, doRemove, getAssociations, getId, getPartitionId, isStreamMode, remove, removeAssociation, setId, setPartitionId |
| Methods inherited from interface org.drools.core.reteoo.LeftTupleSink |
assertLeftTuple, createLeftTuple, createLeftTuple, createLeftTuple, createLeftTuple, createLeftTuple, createPeer, getLeftInferredMask, getLeftInputOtnId, getType, modifyLeftTuple, modifyLeftTuple, retractLeftTuple, setLeftInputOtnId |
log
protected static transient org.slf4j.Logger log
rightInput
protected ObjectSource rightInput
constraints
protected BetaConstraints constraints
objectMemory
protected boolean objectMemory
tupleMemoryEnabled
protected boolean tupleMemoryEnabled
concurrentRightTupleMemory
protected boolean concurrentRightTupleMemory
indexedUnificationJoin
protected boolean indexedUnificationJoin
BetaNode
public BetaNode()
initDeclaredMask
protected void initDeclaredMask(BuildContext context,
LeftTupleSource leftInput)
- Overrides:
initDeclaredMask in class LeftTupleSource
setLeftListenedProperties
protected void setLeftListenedProperties(List<String> leftListenedProperties)
- Overrides:
setLeftListenedProperties in class LeftTupleSource
initInferredMask
public void initInferredMask()
initInferredMask
protected void initInferredMask(LeftTupleSource leftInput)
- Overrides:
initInferredMask in class LeftTupleSource
unwrapRightInput
public ObjectSource unwrapRightInput()
readExternal
public void readExternal(ObjectInput in)
throws IOException,
ClassNotFoundException
- Specified by:
readExternal in interface Externalizable- Overrides:
readExternal in class LeftTupleSource
- Throws:
IOException
ClassNotFoundException
writeExternal
public void writeExternal(ObjectOutput out)
throws IOException
- Specified by:
writeExternal in interface Externalizable- Overrides:
writeExternal in class LeftTupleSource
- Throws:
IOException
setUnificationJoin
public void setUnificationJoin()
assertObject
public void assertObject(InternalFactHandle factHandle,
PropagationContext pctx,
InternalWorkingMemory wm)
- Specified by:
assertObject in interface ObjectSink
modifyObject
public void modifyObject(InternalFactHandle factHandle,
ModifyPreviousTuples modifyPreviousTuples,
PropagationContext context,
InternalWorkingMemory wm)
- Specified by:
modifyObject in interface ObjectSink
doDeleteRightTuple
public void doDeleteRightTuple(RightTuple rightTuple,
InternalWorkingMemory wm,
BetaMemory memory)
doUpdateRightTuple
public void doUpdateRightTuple(RightTuple rightTuple,
InternalWorkingMemory wm,
BetaMemory memory)
isRightInputIsRiaNode
public boolean isRightInputIsRiaNode()
getRightInput
public ObjectSource getRightInput()
getRightIterator
public FastIterator getRightIterator(RightTupleMemory memory)
getRightIterator
public FastIterator getRightIterator(RightTupleMemory memory,
RightTuple rightTuple)
getLeftIterator
public FastIterator getLeftIterator(LeftTupleMemory memory)
getFirstRightTuple
public RightTuple getFirstRightTuple(LeftTuple leftTuple,
RightTupleMemory memory,
InternalFactHandle factHandle,
FastIterator it)
getFirstLeftTuple
public LeftTuple getFirstLeftTuple(RightTuple rightTuple,
LeftTupleMemory memory,
PropagationContext context,
FastIterator it)
getFirstRightTuple
public static RightTuple getFirstRightTuple(RightTupleMemory memory,
FastIterator it)
getFirstLeftTuple
public static LeftTuple getFirstLeftTuple(LeftTupleMemory memory,
FastIterator it)
isIndexedUnificationJoin
public boolean isIndexedUnificationJoin()
getConstraints
public BetaNodeFieldConstraint[] getConstraints()
getRawConstraints
public BetaConstraints getRawConstraints()
setConstraints
public void setConstraints(BetaConstraints constraints)
networkUpdated
public void networkUpdated(UpdateContext updateContext)
- Description copied from class:
BaseNode
- A method that is called for all nodes whose network below them
changed, after the change is complete, providing them with an oportunity
for state update
- Specified by:
networkUpdated in class BaseNode
getRules
public List<String> getRules()
getObjectTypeNode
protected ObjectTypeNode getObjectTypeNode()
- Specified by:
getObjectTypeNode in class LeftTupleSource
attach
public void attach(BuildContext context)
- Description copied from class:
BaseNode
- Attaches the node into the network. Usually to the parent
ObjectSource or TupleSource
- Specified by:
attach in class BaseNode
byPassModifyToBetaNode
public void byPassModifyToBetaNode(InternalFactHandle factHandle,
ModifyPreviousTuples modifyPreviousTuples,
PropagationContext context,
InternalWorkingMemory workingMemory)
- Specified by:
byPassModifyToBetaNode in interface ObjectSink
getBetaMemory
public static BetaMemory getBetaMemory(BetaNode node,
InternalWorkingMemory wm)
isObjectMemoryEnabled
public boolean isObjectMemoryEnabled()
setObjectMemoryEnabled
public void setObjectMemoryEnabled(boolean objectMemory)
isLeftTupleMemoryEnabled
public boolean isLeftTupleMemoryEnabled()
- Specified by:
isLeftTupleMemoryEnabled in interface LeftTupleSink- Specified by:
isLeftTupleMemoryEnabled in class LeftTupleSource
setLeftTupleMemoryEnabled
public void setLeftTupleMemoryEnabled(boolean tupleMemoryEnabled)
- Specified by:
setLeftTupleMemoryEnabled in interface LeftTupleSink
isConcurrentRightTupleMemory
public boolean isConcurrentRightTupleMemory()
setConcurrentRightTupleMemory
public void setConcurrentRightTupleMemory(boolean concurrentRightTupleMemory)
createMemory
public Memory createMemory(RuleBaseConfiguration config,
InternalWorkingMemory wm)
- Specified by:
createMemory in interface MemoryFactory
toString
public String toString()
- Overrides:
toString in class BaseNode
dumpMemory
public void dumpMemory(InternalWorkingMemory workingMemory)
getLeftTupleSource
public LeftTupleSource getLeftTupleSource()
- Specified by:
getLeftTupleSource in interface LeftTupleSink- Overrides:
getLeftTupleSource in class LeftTupleSource
hashCode
public int hashCode()
- Description copied from class:
BaseNode
- The hashCode return is simply the unique id of the node. It is expected that base classes will also implement equals(Object object).
- Overrides:
hashCode in class BaseNode
equals
public boolean equals(Object object)
- Overrides:
equals in class Object
getNextLeftTupleSinkNode
public LeftTupleSinkNode getNextLeftTupleSinkNode()
- Returns the next node
- Specified by:
getNextLeftTupleSinkNode in interface LeftTupleSinkNode
- Returns:
- The next TupleSinkNode
setNextLeftTupleSinkNode
public void setNextLeftTupleSinkNode(LeftTupleSinkNode next)
- Sets the next node
- Specified by:
setNextLeftTupleSinkNode in interface LeftTupleSinkNode
- Parameters:
next - The next TupleSinkNode
getPreviousLeftTupleSinkNode
public LeftTupleSinkNode getPreviousLeftTupleSinkNode()
- Returns the previous node
- Specified by:
getPreviousLeftTupleSinkNode in interface LeftTupleSinkNode
- Returns:
- The previous TupleSinkNode
setPreviousLeftTupleSinkNode
public void setPreviousLeftTupleSinkNode(LeftTupleSinkNode previous)
- Sets the previous node
- Specified by:
setPreviousLeftTupleSinkNode in interface LeftTupleSinkNode
- Parameters:
previous - The previous TupleSinkNode
getNextObjectSinkNode
public ObjectSinkNode getNextObjectSinkNode()
- Returns the next node
- Specified by:
getNextObjectSinkNode in interface ObjectSinkNode
- Returns:
- The next ObjectSinkNode
setNextObjectSinkNode
public void setNextObjectSinkNode(ObjectSinkNode next)
- Sets the next node
- Specified by:
setNextObjectSinkNode in interface ObjectSinkNode
- Parameters:
next - The next ObjectSinkNode
getPreviousObjectSinkNode
public ObjectSinkNode getPreviousObjectSinkNode()
- Returns the previous node
- Specified by:
getPreviousObjectSinkNode in interface ObjectSinkNode
- Returns:
- The previous ObjectSinkNode
setPreviousObjectSinkNode
public void setPreviousObjectSinkNode(ObjectSinkNode previous)
- Sets the previous node
- Specified by:
setPreviousObjectSinkNode in interface ObjectSinkNode
- Parameters:
previous - The previous ObjectSinkNode
createRightTuple
public RightTuple createRightTuple(InternalFactHandle handle,
RightTupleSink sink,
PropagationContext context)
getBetaMemoryFromRightInput
public static Object getBetaMemoryFromRightInput(BetaNode betaNode,
InternalWorkingMemory workingMemory)
getRightDeclaredMask
public long getRightDeclaredMask()
setRightDeclaredMask
public void setRightDeclaredMask(long rightDeclaredMask)
getRightInferredMask
public long getRightInferredMask()
getRightNegativeMask
public long getRightNegativeMask()
getRightInputOtnId
public ObjectTypeNode.Id getRightInputOtnId()
- Specified by:
getRightInputOtnId in interface RightTupleSink
setRightInputOtnId
public void setRightInputOtnId(ObjectTypeNode.Id rightInputOtnId)
Copyright © 2001-2014 JBoss by Red Hat. All Rights Reserved.