Class SegmentMemory

java.lang.Object
org.drools.core.util.LinkedList<SegmentMemory>
org.drools.core.reteoo.SegmentMemory
All Implemented Interfaces:
Externalizable, Serializable, DoubleLinkedEntry<SegmentMemory>, SingleLinkedEntry<SegmentMemory>

public class SegmentMemory extends LinkedList<SegmentMemory> implements DoubleLinkedEntry<SegmentMemory>
See Also:
  • Field Details

    • log

      protected static final org.slf4j.Logger log
    • IS_LOG_TRACE_ENABLED

      protected static final boolean IS_LOG_TRACE_ENABLED
  • Constructor Details

    • SegmentMemory

      public SegmentMemory()
    • SegmentMemory

      public SegmentMemory(LeftTupleNode rootNode)
  • Method Details

    • createNodeMemory

      public <T extends Memory> T createNodeMemory(MemoryFactory<T> memoryFactory, ReteEvaluator reteEvaluator)
    • getRootNode

      public LeftTupleNode getRootNode()
    • getSegmentPrototype

      public SegmentMemory.SegmentPrototype getSegmentPrototype()
    • getTipNode

      public LeftTupleNode getTipNode()
    • setTipNode

      public void setTipNode(LeftTupleNode tipNode)
    • getSinkFactory

      public LeftTupleSink getSinkFactory()
    • getNodeMemories

      public Memory[] getNodeMemories()
    • setNodeMemories

      public void setNodeMemories(Memory[] nodeMemories)
    • getLinkedNodeMask

      public long getLinkedNodeMask()
    • setLinkedNodeMask

      public void setLinkedNodeMask(long linkedNodeMask)
    • getDirtyNodeMask

      public long getDirtyNodeMask()
    • setDirtyNodeMask

      public void setDirtyNodeMask(long dirtyNodeMask)
    • updateDirtyNodeMask

      public void updateDirtyNodeMask(long mask)
    • updateCleanNodeMask

      public void updateCleanNodeMask(long mask)
    • getRuleNames

      public String getRuleNames()
    • linkNode

      public boolean linkNode(long mask, ReteEvaluator reteEvaluator)
    • linkNodeWithoutRuleNotify

      public boolean linkNodeWithoutRuleNotify(long mask)
    • linkSegmentWithoutRuleNotify

      public boolean linkSegmentWithoutRuleNotify(long mask)
    • notifyRuleLinkSegment

      public boolean notifyRuleLinkSegment(ReteEvaluator reteEvaluator, long mask)
    • notifyRuleLinkSegment

      public boolean notifyRuleLinkSegment(ReteEvaluator reteEvaluator)
    • notifyRuleLinkSegment

      public void notifyRuleLinkSegment(ReteEvaluator reteEvaluator, PathMemory pmem)
    • unlinkNode

      public boolean unlinkNode(long mask, ReteEvaluator reteEvaluator)
    • unlinkSegment

      public void unlinkSegment(ReteEvaluator reteEvaluator)
    • unlinkNodeWithoutRuleNotify

      public void unlinkNodeWithoutRuleNotify(long mask)
    • getAllLinkedMaskTest

      public long getAllLinkedMaskTest()
    • setAllLinkedMaskTest

      public void setAllLinkedMaskTest(long allLinkedTestMask)
    • isSegmentLinked

      public boolean isSegmentLinked()
    • getPathMemories

      public List<PathMemory> getPathMemories()
    • addPathMemory

      public void addPathMemory(PathMemory pathMemory)
    • mergePathMemories

      public void mergePathMemories(SegmentMemory segmentMemory)
    • removePathMemory

      public void removePathMemory(PathMemory pathMemory)
    • getFirstDataDrivenPathMemory

      public PathMemory getFirstDataDrivenPathMemory()
    • hasDataDrivenPathMemories

      public boolean hasDataDrivenPathMemories()
    • getDataDrivenPathMemories

      public List<PathMemory> getDataDrivenPathMemories()
    • getSegmentPosMaskBit

      public long getSegmentPosMaskBit()
    • setSegmentPosMaskBit

      public void setSegmentPosMaskBit(long segmentPosMaskBit)
    • isActive

      public boolean isActive()
    • setActive

      public void setActive(boolean evaluating)
    • getPos

      public int getPos()
    • setPos

      public void setPos(int pos)
    • getStagedLeftTuples

      public TupleSets getStagedLeftTuples()
    • add

      public void add(SegmentMemory segmentMemory)
      Description copied from class: LinkedList
      Add a LinkedListNode to the list. If the LinkedList is empty then the first and last nodes are set to the added node.
      Overrides:
      add in class LinkedList<SegmentMemory>
      Parameters:
      segmentMemory - The LinkedListNode to be added
    • remove

      public void remove(SegmentMemory segmentMemory)
      Description copied from class: LinkedList
      Removes a LinkedListNode from the list. This works by attach the previous reference to the child reference. When the node to be removed is the first node it calls removeFirst(). When the node to be removed is the last node it calls removeLast().
      Overrides:
      remove in class LinkedList<SegmentMemory>
      Parameters:
      segmentMemory - The LinkedListNode to be removed.
    • getPeersWithDataDrivenPathMemoriesIterator

      public Iterator<SegmentMemory> getPeersWithDataDrivenPathMemoriesIterator()
    • getNext

      public SegmentMemory getNext()
      Specified by:
      getNext in interface SingleLinkedEntry<SegmentMemory>
    • setNext

      public void setNext(SegmentMemory next)
      Specified by:
      setNext in interface SingleLinkedEntry<SegmentMemory>
    • getPrevious

      public SegmentMemory getPrevious()
      Description copied from interface: DoubleLinkedEntry
      Returns the previous node
      Specified by:
      getPrevious in interface DoubleLinkedEntry<SegmentMemory>
      Returns:
      The previous LinkedListNode
    • setPrevious

      public void setPrevious(SegmentMemory previous)
      Description copied from interface: DoubleLinkedEntry
      Sets the previous node
      Specified by:
      setPrevious in interface DoubleLinkedEntry<SegmentMemory>
      Parameters:
      previous - The previous LinkedListNode
    • clear

      public void clear()
      Description copied from class: LinkedList
      Iterates the list removing all the nodes until there are no more nodes to remove.
      Specified by:
      clear in interface DoubleLinkedEntry<SegmentMemory>
      Overrides:
      clear in class LinkedList<SegmentMemory>
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class LinkedList<SegmentMemory>
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class LinkedList<SegmentMemory>
    • reset

      public void reset(SegmentMemory.SegmentPrototype segmentPrototype)
    • toString

      public String toString()
      Overrides:
      toString in class Object