public class InitialFactNode extends AbstractNode implements ITupleSourceNode, IObjectConsumerNode
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
INITIAL_FACT
The initial fact.
|
protected java.util.Collection |
initial_fact_mem
The initial fact memory.
|
protected Tuple |
initial_fact_tuple
The initial fact tuple.
|
protected IObjectSourceNode |
osource
The object source.
|
protected AttributeSet |
relevants
The set of relevant attributes.
|
protected ITupleConsumerNode[] |
tconsumers
The tuple consumers.
|
clones, nodeid
Constructor and Description |
---|
InitialFactNode(int nodeid)
Create a new node.
|
Modifier and Type | Method and Description |
---|---|
void |
addObject(java.lang.Object object,
IOAVState state,
ReteMemory mem,
AbstractAgenda agenda)
Send a new object to this node.
|
void |
addTupleConsumer(ITupleConsumerNode node)
Add an tuple consumer node.
|
java.lang.Object |
createNodeMemory(IOAVState state)
Create the node memory.
|
protected void |
doClone(java.lang.Object theclone)
Do clone makes a deep clone without regarding cycles.
|
AttributeSet |
getIndirectAttributes()
Get the set of indirect attribute types.
|
java.util.Collection |
getNodeMemory(ReteMemory mem)
Get the memory for this node.
|
IObjectSourceNode |
getObjectSource()
Get the object source of this node.
|
AttributeSet |
getRelevantAttributes()
Get the set of relevant attribute types.
|
ITupleConsumerNode[] |
getTupleConsumers()
Get all tuple consumer nodes.
|
void |
init(IOAVState state,
ReteMemory mem,
AbstractAgenda agenda)
Initialize the pattern matcher.
|
void |
modifyIndirectObject(java.lang.Object object,
OAVAttributeType type,
java.lang.Object oldvalue,
java.lang.Object newvalue,
IOAVState state,
ReteMemory mem,
AbstractAgenda agenda)
Propagate an indirect object change to this node.
|
void |
modifyObject(java.lang.Object object,
OAVAttributeType type,
java.lang.Object oldvalue,
java.lang.Object newvalue,
IOAVState state,
ReteMemory mem,
AbstractAgenda agenda)
Propagate an object change to this node.
|
void |
removeObject(java.lang.Object object,
IOAVState state,
ReteMemory mem,
AbstractAgenda agenda)
Send a removed object to this node.
|
void |
removeTupleConsumer(ITupleConsumerNode node)
Remove an tuple consumer.
|
void |
setObjectSource(IObjectSourceNode node)
Set the object source of this node.
|
checkNodeConsistency, clone, equals, getNodeId, hashCode, toString, toString
finalize, getClass, notify, notifyAll, wait, wait, wait
checkNodeConsistency, clone, getNodeId
public static final java.lang.String INITIAL_FACT
protected ITupleConsumerNode[] tconsumers
protected IObjectSourceNode osource
protected volatile AttributeSet relevants
protected Tuple initial_fact_tuple
protected java.util.Collection initial_fact_mem
public void init(IOAVState state, ReteMemory mem, AbstractAgenda agenda)
public void addObject(java.lang.Object object, IOAVState state, ReteMemory mem, AbstractAgenda agenda)
addObject
in interface IObjectConsumerNode
object
- The object.public void removeObject(java.lang.Object object, IOAVState state, ReteMemory mem, AbstractAgenda agenda)
removeObject
in interface IObjectConsumerNode
object
- The object.public void modifyObject(java.lang.Object object, OAVAttributeType type, java.lang.Object oldvalue, java.lang.Object newvalue, IOAVState state, ReteMemory mem, AbstractAgenda agenda)
modifyObject
in interface IObjectConsumerNode
object
- The new object.public void modifyIndirectObject(java.lang.Object object, OAVAttributeType type, java.lang.Object oldvalue, java.lang.Object newvalue, IOAVState state, ReteMemory mem, AbstractAgenda agenda)
modifyIndirectObject
in interface INode
object
- The changed object.public void setObjectSource(IObjectSourceNode node)
setObjectSource
in interface IObjectConsumerNode
node
- The object source node.public IObjectSourceNode getObjectSource()
getObjectSource
in interface IObjectConsumerNode
public void addTupleConsumer(ITupleConsumerNode node)
addTupleConsumer
in interface ITupleSourceNode
node
- A new consumer node.public void removeTupleConsumer(ITupleConsumerNode node)
removeTupleConsumer
in interface ITupleSourceNode
node
- The consumer node.public ITupleConsumerNode[] getTupleConsumers()
getTupleConsumers
in interface ITupleSourceNode
public java.util.Collection getNodeMemory(ReteMemory mem)
getNodeMemory
in interface INode
getNodeMemory
in interface ITupleSourceNode
public java.lang.Object createNodeMemory(IOAVState state)
createNodeMemory
in interface INode
state
- The state.public AttributeSet getRelevantAttributes()
getRelevantAttributes
in interface INode
public AttributeSet getIndirectAttributes()
getIndirectAttributes
in interface INode
protected void doClone(java.lang.Object theclone)
doClone
in class AbstractNode
theclone
- The clone.