Package org.drools.core.reteoo
Class ObjectSource
- java.lang.Object
-
- org.drools.core.common.BaseNode
-
- org.drools.core.reteoo.ObjectSource
-
- All Implemented Interfaces:
java.io.Serializable
,org.drools.base.common.NetworkNode
- Direct Known Subclasses:
AlphaNode
,EntryPointNode
,ObjectTypeNode
,Rete
,RightInputAdapterNode
,WindowNode
public abstract class ObjectSource extends BaseNode
A source ofFactHandle
s for anObjectSink
.Nodes that propagate
FactHandleImpl
extend this class.- See Also:
ObjectSource
,DefaultFactHandle
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected int
alphaNodeHashingThreshold
protected int
alphaNodeRangeIndexThreshold
protected org.drools.core.util.bitmask.BitMask
declaredMask
protected org.drools.core.util.bitmask.BitMask
inferredMask
protected ObjectSinkPropagator
sink
The destination forFactHandleImpl
.protected ObjectSource
source
-
Fields inherited from class org.drools.core.common.BaseNode
associations, hashcode, id, memoryId, partitionId, partitionsEnabled
-
-
Constructor Summary
Constructors Modifier Constructor Description ObjectSource()
protected
ObjectSource(int id, org.drools.base.common.RuleBasePartitionId partitionId, boolean partitionsEnabled)
Single parameter constructor that specifies the unique id of the node.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addObjectSink(ObjectSink objectSink)
Adds theObjectSink
so that it may receiveFactHandleImpl
propagated from thisObjectSource
.abstract org.drools.core.util.bitmask.BitMask
calculateDeclaredMask(org.drools.base.base.ObjectType modifiedType, java.util.List<java.lang.String> settableProperties)
protected boolean
doRemove(RuleRemovalContext context, ReteooBuilder builder)
Removes the node from the network.org.drools.core.util.bitmask.BitMask
getDeclaredMask()
ObjectSinkPropagator
getObjectSinkPropagator()
ObjectTypeNode
getObjectTypeNode()
ObjectSource
getParentObjectSource()
InternalRuleBase
getRuleBase()
void
initDeclaredMask(BuildContext context)
boolean
isInUse()
Returns true in case the current node is in use (is referenced by any other node)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 opportunity for state updatevoid
removeObjectSink(ObjectSink objectSink)
Removes theObjectSink
void
resetInferredMask()
void
setObjectSinkPropagator(ObjectSinkPropagator sink)
void
setParentObjectSource(ObjectSource source)
void
setPartitionId(BuildContext context, org.drools.base.common.RuleBasePartitionId partitionId)
Sets the partition this node belongs tovoid
setPartitionIdWithSinks(org.drools.base.common.RuleBasePartitionId partitionId)
org.drools.base.common.RuleBasePartitionId
setSourcePartitionId(org.drools.base.common.RuleBasePartitionId partitionId)
org.drools.core.util.bitmask.BitMask
updateMask(org.drools.core.util.bitmask.BitMask mask)
abstract void
updateSink(ObjectSink sink, PropagationContext context, InternalWorkingMemory workingMemory)
-
Methods inherited from class org.drools.core.common.BaseNode
addAssociatedTerminal, addAssociation, addAssociation, attach, doAttach, getAssociatedRules, getAssociatedTerminalsSize, getAssociationsSize, getId, getMemoryId, getPartitionId, getSinks, hasAssociatedTerminal, hashCode, initMemoryId, isAssociatedWith, isStreamMode, remove, removeAssociatedTerminal, removeAssociation, setId, setPartitionsEnabled, setStreamMode, toString
-
-
-
-
Field Detail
-
sink
protected ObjectSinkPropagator sink
The destination forFactHandleImpl
.
-
source
protected ObjectSource source
-
alphaNodeHashingThreshold
protected int alphaNodeHashingThreshold
-
alphaNodeRangeIndexThreshold
protected int alphaNodeRangeIndexThreshold
-
declaredMask
protected org.drools.core.util.bitmask.BitMask declaredMask
-
inferredMask
protected org.drools.core.util.bitmask.BitMask inferredMask
-
-
Method Detail
-
getParentObjectSource
public ObjectSource getParentObjectSource()
-
setParentObjectSource
public void setParentObjectSource(ObjectSource source)
-
getRuleBase
public InternalRuleBase getRuleBase()
-
initDeclaredMask
public void initDeclaredMask(BuildContext context)
-
calculateDeclaredMask
public abstract org.drools.core.util.bitmask.BitMask calculateDeclaredMask(org.drools.base.base.ObjectType modifiedType, java.util.List<java.lang.String> settableProperties)
-
resetInferredMask
public void resetInferredMask()
-
updateMask
public org.drools.core.util.bitmask.BitMask updateMask(org.drools.core.util.bitmask.BitMask mask)
-
setPartitionId
public void setPartitionId(BuildContext context, org.drools.base.common.RuleBasePartitionId partitionId)
Description copied from class:BaseNode
Sets the partition this node belongs to- Overrides:
setPartitionId
in classBaseNode
-
setSourcePartitionId
public final org.drools.base.common.RuleBasePartitionId setSourcePartitionId(org.drools.base.common.RuleBasePartitionId partitionId)
-
setPartitionIdWithSinks
public final void setPartitionIdWithSinks(org.drools.base.common.RuleBasePartitionId partitionId)
-
addObjectSink
public void addObjectSink(ObjectSink objectSink)
Adds theObjectSink
so that it may receiveFactHandleImpl
propagated from thisObjectSource
.- Parameters:
objectSink
- TheObjectSink
to receive propagatedFactHandleImpl
.
-
removeObjectSink
public void removeObjectSink(ObjectSink objectSink)
Removes theObjectSink
- Parameters:
objectSink
- TheObjectSink
to remove
-
updateSink
public abstract void updateSink(ObjectSink sink, PropagationContext context, InternalWorkingMemory workingMemory)
-
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 opportunity for state update- Specified by:
networkUpdated
in classBaseNode
-
getObjectSinkPropagator
public ObjectSinkPropagator getObjectSinkPropagator()
-
setObjectSinkPropagator
public void setObjectSinkPropagator(ObjectSinkPropagator sink)
-
isInUse
public boolean isInUse()
Description copied from class:BaseNode
Returns true in case the current node is in use (is referenced by any other node)
-
doRemove
protected boolean doRemove(RuleRemovalContext context, ReteooBuilder builder)
Description copied from class:BaseNode
Removes the node from the network. Usually from the parentObjectSource
orTupleSource
-
getObjectTypeNode
public ObjectTypeNode getObjectTypeNode()
- Specified by:
getObjectTypeNode
in classBaseNode
-
getDeclaredMask
public org.drools.core.util.bitmask.BitMask getDeclaredMask()
-
-