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 TupleMaskprotected Mailboxprotected ProjectionIndexerprotected ProjectionIndexerprotected final TupleMaskprotected final Collection<Supplier> protected final List<SpecializedProjectionIndexer.ListenerSubscription> protected final intFields inherited from class tools.refinery.interpreter.rete.network.StandardNode
childMailboxes, childrenFields inherited from class tools.refinery.interpreter.rete.network.BaseNode
nodeId, reteContainer, tag, traceInfos -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidappendParent(Supplier supplier) appends a parent that will continuously send insert and revoke updates to this suppliervoidassignTraceInfo(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 ProjectionIndexerReturns theMailboxof this receiver.abstract ProjectionIndexeraccess active parentprotected abstract Mailboxprotected voidvoidremoveParent(Supplier supplier) removes a parentMethods inherited from class tools.refinery.interpreter.rete.network.StandardNode
appendChild, getChildMailboxes, getPulledContents, getReceivers, issueError, networkStructureChanged, propagateUpdate, removeChildMethods inherited from class tools.refinery.interpreter.rete.network.BaseNode
acceptPropagatedTraceInfo, getContainer, getNodeId, getTag, getTraceInfoPatternsEnumerated, getTraceInfos, setTag, toString, toStringCoreMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface tools.refinery.interpreter.rete.network.Node
acceptPropagatedTraceInfo, getCommunicationTracker, getContainer, getNodeId, getTag, getTraceInfos, setTagMethods inherited from interface tools.refinery.interpreter.rete.network.Receiver
batchUpdate, updateMethods 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:ReceiverReturns theMailboxof this receiver.- Specified by:
getMailboxin interfaceReceiver- Returns:
- the mailbox
-
getTuples
- Since:
- 2.8
-
propagate
- Since:
- 2.4
-
constructIndex
Description copied from interface:SupplierInstantiates (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:
constructIndexin interfaceSupplier- Overrides:
constructIndexin classStandardNode
-
getNullIndexer
-
getIdentityIndexer
-
appendParent
Description copied from interface:Receiverappends a parent that will continuously send insert and revoke updates to this supplier- Specified by:
appendParentin interfaceReceiver
-
removeParent
Description copied from interface:Receiverremoves a parent- Specified by:
removeParentin interfaceReceiver
-
getParents
Description copied from interface:Receiveraccess active parent- Specified by:
getParentsin interfaceReceiver
-
assignTraceInfo
Description copied from interface:Nodeassigns new traceability info to this node- Specified by:
assignTraceInfoin interfaceNode- Overrides:
assignTraceInfoin classBaseNode
-