Class StandardNode

java.lang.Object
tools.refinery.interpreter.rete.network.BaseNode
tools.refinery.interpreter.rete.network.StandardNode
All Implemented Interfaces:
NetworkStructureChangeSensitiveNode, Node, Supplier
Direct Known Subclasses:
AbstractUniquenessEnforcerNode, ConstantNode, DualInputNode, ExternalInputEnumeratorNode, IndexerBasedAggregatorNode, LeftJoinNode, RelationEvaluatorNode, SingleInputNode

public abstract class StandardNode extends BaseNode implements Supplier, NetworkStructureChangeSensitiveNode
Base implementation for a supplier node.
  • Field Details

    • children

      protected final List<Receiver> children
    • childMailboxes

      protected final List<Mailbox> childMailboxes
      Since:
      2.2
  • Constructor Details

    • StandardNode

      public StandardNode(ReteContainer reteContainer)
  • Method Details

    • propagateUpdate

      protected void propagateUpdate(Direction direction, Tuple updateElement, Timestamp timestamp)
      Since:
      2.4
    • appendChild

      public void appendChild(Receiver receiver)
      Description copied from interface: Supplier
      appends a receiver that will continously receive insert and revoke updates from this supplier
      Specified by:
      appendChild in interface Supplier
    • removeChild

      public void removeChild(Receiver receiver)
      Description copied from interface: Supplier
      removes a receiver
      Specified by:
      removeChild in interface Supplier
    • networkStructureChanged

      public void networkStructureChanged()
      Description copied from interface: NetworkStructureChangeSensitiveNode
      At the time of the invocation, the dependency graph has already been updated.
      Specified by:
      networkStructureChanged in interface NetworkStructureChangeSensitiveNode
    • getReceivers

      public Collection<Receiver> getReceivers()
      Description copied from interface: Supplier
      lists receivers
      Specified by:
      getReceivers in interface Supplier
    • getChildMailboxes

      public Collection<Mailbox> getChildMailboxes()
      Since:
      2.2
    • getPulledContents

      public Set<Tuple> getPulledContents(boolean flush)
      Description copied from interface: Supplier
      Returns the contents of this object in this particular moment. For memoryless nodes, this may involve a costly recomputation of contents. The result is returned as a Set, even when it has multiplicities (at the output of TrimmerNode).

      Intended mainly for debug purposes; therefore flushing is performed only if explicitly requested During runtime, flushing may be preferred; see

      invalid reference
      ReteContainer#pullContents(Supplier)
      Specified by:
      getPulledContents in interface Supplier
    • constructIndex

      public ProjectionIndexer constructIndex(TupleMask mask, TraceInfo... traces)
      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 interface Supplier
    • issueError

      protected void issueError(String message, Exception ex)
      Since:
      1.6