站内搜索: 请输入搜索关键词
当前页面: 在线文档首页 > JBoss RULES 4.0.0.11754MR2 API 英文版文档

ExistsNode (Drools 4.0.0.11754MR2 API) - JBoss RULES 4.0.0.11754MR2 API 英文版文档


org.drools.reteoo
Class ExistsNode

java.lang.Object
  extended by org.drools.common.BaseNode
      extended by org.drools.reteoo.TupleSource
          extended by org.drools.reteoo.ExistsNode
All Implemented Interfaces:
Serializable, NetworkNode, NodeMemory, ObjectSink, ObjectSinkNode, TupleSink, TupleSinkNode

public class ExistsNode
extends TupleSource

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 cancelling 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 assserted ReteTuples and FactHandleImpls. Each fact handle is stored in the right memory.

Author:
Edson Tirelli
See Also:
Serialized Form

Field Summary
protected  BetaConstraints constraints
           
protected  TupleSource leftInput
          The left input TupleSource.
protected  ObjectSource rightInput
          The right input TupleSource.
 
Fields inherited from class org.drools.reteoo.TupleSource
sink
 
Fields inherited from class org.drools.common.BaseNode
hasMemory, id, sharedCount
 
Constructor Summary
ExistsNode(int id, TupleSource leftInput, ObjectSource rightInput)
          Constructs a new Exists node with EmptyBetaConstraints.
ExistsNode(int id, TupleSource leftInput, ObjectSource rightInput, BetaConstraints joinNodeBinder)
          Construct.
 
Method Summary
 void assertObject(InternalFactHandle handle, PropagationContext context, InternalWorkingMemory workingMemory)
          Assert a new FactHandleImpl from the right input.
 void assertTuple(ReteTuple leftTuple, PropagationContext context, InternalWorkingMemory workingMemory)
          Assert a new ReteTuple from the left input.
 void attach()
          Attaches the node into the network.
 void attach(InternalWorkingMemory[] workingMemories)
           
 Object createMemory(RuleBaseConfiguration config)
          Creates a BetaMemory for the BetaNode's memory.
 void dumpMemory(InternalWorkingMemory workingMemory)
           
 boolean equals(Object object)
           
 BetaNodeFieldConstraint[] getConstraints()
           
 ObjectSinkNode getNextObjectSinkNode()
          Returns the next node
 TupleSinkNode getNextTupleSinkNode()
          Returns the next node
 ObjectTypeNode getObjectTypeNode()
           
 ObjectSinkNode getPreviousObjectSinkNode()
          Returns the previous node
 TupleSinkNode getPreviousTupleSinkNode()
          Returns the previous node
 List getRules()
           
 int hashCode()
          The hashCode return is simply the unique id of the node.
 void remove(BaseNode node, InternalWorkingMemory[] workingMemories)
          Removes the node from teh network.
 void retractObject(InternalFactHandle handle, PropagationContext context, InternalWorkingMemory workingMemory)
          Retract the FactHandleImpl.
 void retractTuple(ReteTuple leftTuple, PropagationContext context, InternalWorkingMemory workingMemory)
          Retract the ReteTuple, any resulting propagated joins are also retracted.
 void setNextObjectSinkNode(ObjectSinkNode next)
          Sets the next node
 void setNextTupleSinkNode(TupleSinkNode next)
          Sets the next node
 void setPreviousObjectSinkNode(ObjectSinkNode previous)
          Sets the previous node
 void setPreviousTupleSinkNode(TupleSinkNode previous)
          Sets the previous node
 String toString()
           
 void updateSink(TupleSink sink, PropagationContext context, InternalWorkingMemory workingMemory)
          Updates the given sink propagating all previously propagated tuples to it
 
Methods inherited from class org.drools.reteoo.TupleSource
addTupleSink, getSinkPropagator, removeTupleSink
 
Methods inherited from class org.drools.common.BaseNode
addShare, getId, getSharedCount, hasMemory, isInUse, isShared, removeShare, setHasMemory
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.drools.common.NodeMemory
getId
 

Field Detail

leftInput

protected final TupleSource leftInput
The left input TupleSource.


rightInput

protected final ObjectSource rightInput
The right input TupleSource.


constraints

protected final BetaConstraints constraints
Constructor Detail

ExistsNode

public ExistsNode(int id,
                  TupleSource leftInput,
                  ObjectSource rightInput)
Constructs a new Exists node with EmptyBetaConstraints.

Parameters:
leftInput - The left input TupleSource.
rightInput - The right input ObjectSource.

ExistsNode

public ExistsNode(int id,
                  TupleSource leftInput,
                  ObjectSource rightInput,
                  BetaConstraints joinNodeBinder)
Construct.

Parameters:
leftInput - The left input TupleSource.
rightInput - The right input ObjectSource.
joinNodeBinder - The constraints to be aplied to the right objects
Method Detail

assertTuple

public void assertTuple(ReteTuple leftTuple,
                        PropagationContext context,
                        InternalWorkingMemory workingMemory)
Assert a new ReteTuple from the left input. It iterates over the right FactHandleImpl's and if any match is found, a copy of the ReteTuple is made and propagated.

Parameters:
tuple - The Tuple being asserted.
context - The PropagationContext
workingMemory - The working memory seesion.

assertObject

public void assertObject(InternalFactHandle handle,
                         PropagationContext context,
                         InternalWorkingMemory workingMemory)
Assert a new FactHandleImpl from the right input. If it matches any left ReteTuple's that had no matches before, propagate tuple as an assertion.

Parameters:
handle - The FactHandleImpl being asserted.
context - The PropagationContext
workingMemory - The working memory seesion.

retractObject

public void retractObject(InternalFactHandle handle,
                          PropagationContext context,
                          InternalWorkingMemory workingMemory)
Retract the FactHandleImpl. If the handle has any ReteTuple matches and those tuples now have no other match, retract tuple

Parameters:
handle - the being retracted
context - The PropagationContext
workingMemory - The working memory seesion.

retractTuple

public void retractTuple(ReteTuple leftTuple,
                         PropagationContext context,
                         InternalWorkingMemory workingMemory)
Retract the ReteTuple, any resulting propagated joins are also retracted.

Parameters:
leftTuple - The tuple being retracted
context - The PropagationContext
workingMemory - The working memory seesion.

updateSink

public void updateSink(TupleSink sink,
                       PropagationContext context,
                       InternalWorkingMemory workingMemory)
Updates the given sink propagating all previously propagated tuples to it

Specified by:
updateSink in class TupleSource

toString

public String toString()

getConstraints

public BetaNodeFieldConstraint[] getConstraints()

attach

public void attach()
Description copied from class: BaseNode
Attaches the node into the network. Usually to the parent ObjectSource or TupleSource

Specified by:
attach in class BaseNode

getRules

public List getRules()

getObjectTypeNode

public ObjectTypeNode getObjectTypeNode()

attach

public void attach(InternalWorkingMemory[] workingMemories)
Specified by:
attach in class BaseNode

remove

public void remove(BaseNode node,
                   InternalWorkingMemory[] workingMemories)
Description copied from class: BaseNode
Removes the node from teh network. Usually from the parent ObjectSource or TupleSource

Specified by:
remove in class BaseNode

dumpMemory

public void dumpMemory(InternalWorkingMemory workingMemory)

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

createMemory

public Object createMemory(RuleBaseConfiguration config)
Creates a BetaMemory for the BetaNode's memory.

Specified by:
createMemory in interface NodeMemory

getNextTupleSinkNode

public TupleSinkNode getNextTupleSinkNode()
Returns the next node

Specified by:
getNextTupleSinkNode in interface TupleSinkNode
Returns:
The next TupleSinkNode

setNextTupleSinkNode

public void setNextTupleSinkNode(TupleSinkNode next)
Sets the next node

Specified by:
setNextTupleSinkNode in interface TupleSinkNode
Parameters:
next - The next TupleSinkNode

getPreviousTupleSinkNode

public TupleSinkNode getPreviousTupleSinkNode()
Returns the previous node

Specified by:
getPreviousTupleSinkNode in interface TupleSinkNode
Returns:
The previous TupleSinkNode

setPreviousTupleSinkNode

public void setPreviousTupleSinkNode(TupleSinkNode previous)
Sets the previous node

Specified by:
setPreviousTupleSinkNode in interface TupleSinkNode
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


Copyright © 2001-2007 JBoss Inc.. All Rights Reserved.