Drools :: Core 6.1.0.Beta1

org.drools.core.reteoo
Class BetaNode

java.lang.Object
  extended by org.drools.core.common.BaseNode
      extended by org.drools.core.reteoo.LeftTupleSource
          extended by 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

Field Summary
protected  boolean concurrentRightTupleMemory
           
protected  BetaConstraints constraints
           
protected  boolean indexedUnificationJoin
           
protected static org.slf4j.Logger log
           
protected  boolean objectMemory
           
protected  ObjectSource rightInput
           
protected  boolean 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
BetaNode()
           
 
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 class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.drools.core.reteoo.LeftTupleSink
assertLeftTuple, createLeftTuple, createLeftTuple, createLeftTuple, createLeftTuple, createLeftTuple, createPeer, getLeftInferredMask, getLeftInputOtnId, getType, modifyLeftTuple, modifyLeftTuple, retractLeftTuple, setLeftInputOtnId
 
Methods inherited from interface org.drools.core.common.NetworkNode
getAssociations, getId, getPartitionId
 
Methods inherited from interface org.drools.core.reteoo.RightTupleSink
assertRightTuple, getType, modifyRightTuple, retractRightTuple
 
Methods inherited from interface org.drools.core.common.MemoryFactory
getId
 

Field Detail

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
Constructor Detail

BetaNode

public BetaNode()
Method Detail

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)

Drools :: Core 6.1.0.Beta1

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