Interface TupleMemory

All Known Implementing Classes:
AbstractHashTable.IndexTupleList, AbstractTupleIndexTree.IndexTupleList, TupleIndexHashTable, TupleIndexRBTree, TupleList, TupleListWithContext, TupleRBTree.Node

public interface TupleMemory
  • Method Details

    • getIndex

      default AbstractHashTable.Index getIndex()
    • getFirst

      TupleImpl getFirst(TupleImpl tuple)
      The FactHandle is always the context fact and is necessary when the object being modified is in the both left and right node memories. This is because the memory on the opposite side would not have yet memory.removeAdd the fact, so it could potentially be in the wrong bucket. So the bucket matches check always checks to ignore the first facthandle if it's the same as the context fact.
    • removeAdd

      void removeAdd(TupleImpl tuple)
    • add

      void add(TupleImpl tuple)
    • remove

      void remove(TupleImpl tuple)
    • isIndexed

      boolean isIndexed()
    • size

      int size()
    • fastIterator

      FastIterator<TupleImpl> fastIterator()
    • fullFastIterator

      FastIterator<TupleImpl> fullFastIterator()
      Iterates the entire data structure, regardless of whether TupleMemory is hashed or not.
      Returns:
    • fullFastIterator

      FastIterator<TupleImpl> fullFastIterator(TupleImpl tuple)
      Iterator that resumes from the current RightTuple, regardless of whether the TupleMemory is hashed or not
      Parameters:
      tuple -
      Returns:
    • getIndexType

      TupleMemory.IndexType getIndexType()
    • clear

      void clear()