Class AbstractUniquenessEnforcerNode
java.lang.Object
tools.refinery.interpreter.rete.network.BaseNode
tools.refinery.interpreter.rete.network.StandardNode
tools.refinery.interpreter.rete.single.AbstractUniquenessEnforcerNode
- All Implemented Interfaces:
NetworkStructureChangeSensitiveNode
,Node
,Receiver
,Supplier
,Tunnel
- Direct Known Subclasses:
TimelyUniquenessEnforcerNode
,UniquenessEnforcerNode
Ensures that no identical copies get to the output. Only one replica of each pattern substitution may traverse this
node. There are both timeless and timely implementations.
- Since:
- 2.2
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final TupleMask
protected Mailbox
protected ProjectionIndexer
protected ProjectionIndexer
protected final TupleMask
protected final Collection
<Supplier> protected final List
<SpecializedProjectionIndexer.ListenerSubscription> protected final int
Fields inherited from class tools.refinery.interpreter.rete.network.StandardNode
childMailboxes, children
Fields inherited from class tools.refinery.interpreter.rete.network.BaseNode
nodeId, reteContainer, tag, traceInfos
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
appendParent
(Supplier supplier) appends a parent that will continuously send insert and revoke updates to this suppliervoid
assignTraceInfo
(TraceInfo traceInfo) assigns new traceability info to this nodeconstructIndex
(TupleMask mask, TraceInfo... traces) Instantiates (or reuses, depending on implementation) an index according to the given mask.abstract ProjectionIndexer
Returns theMailbox
of this receiver.abstract ProjectionIndexer
access active parentprotected abstract Mailbox
protected void
void
removeParent
(Supplier supplier) removes a parentMethods inherited from class tools.refinery.interpreter.rete.network.StandardNode
appendChild, getChildMailboxes, getPulledContents, getReceivers, issueError, networkStructureChanged, propagateUpdate, removeChild
Methods inherited from class tools.refinery.interpreter.rete.network.BaseNode
acceptPropagatedTraceInfo, getContainer, getNodeId, getTag, getTraceInfoPatternsEnumerated, getTraceInfos, setTag, toString, toStringCore
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface tools.refinery.interpreter.rete.network.Node
acceptPropagatedTraceInfo, getCommunicationTracker, getContainer, getNodeId, getTag, getTraceInfos, setTag
Methods inherited from interface tools.refinery.interpreter.rete.network.Receiver
batchUpdate, update
Methods inherited from interface tools.refinery.interpreter.rete.network.Supplier
appendChild, getPulledContents, getPulledContents, getReceivers, pullInto, pullIntoWithTimeline, removeChild
-
Field Details
-
parents
-
memoryNullIndexer
-
memoryIdentityIndexer
-
tupleWidth
protected final int tupleWidth -
mailbox
-
nullMask
-
identityMask
-
specializedListeners
-
-
Constructor Details
-
AbstractUniquenessEnforcerNode
-
-
Method Details
-
instantiateMailbox
-
getMailbox
Description copied from interface:Receiver
Returns theMailbox
of this receiver.- Specified by:
getMailbox
in interfaceReceiver
- Returns:
- the mailbox
-
getTuples
- Since:
- 2.8
-
propagate
- Since:
- 2.4
-
constructIndex
Description copied from interface:Supplier
Instantiates (or reuses, depending on implementation) an index according to the given mask. Intended for internal use; clients should invoke through Library instead to enable reusing.- Specified by:
constructIndex
in interfaceSupplier
- Overrides:
constructIndex
in classStandardNode
-
getNullIndexer
-
getIdentityIndexer
-
appendParent
Description copied from interface:Receiver
appends a parent that will continuously send insert and revoke updates to this supplier- Specified by:
appendParent
in interfaceReceiver
-
removeParent
Description copied from interface:Receiver
removes a parent- Specified by:
removeParent
in interfaceReceiver
-
getParents
Description copied from interface:Receiver
access active parent- Specified by:
getParents
in interfaceReceiver
-
assignTraceInfo
Description copied from interface:Node
assigns new traceability info to this node- Specified by:
assignTraceInfo
in interfaceNode
- Overrides:
assignTraceInfo
in classBaseNode
-