Class AbstractJoinNode<LeftTuple_ extends Tuple,Right_,OutTuple_ extends Tuple,MutableOutTuple_ extends OutTuple_>

java.lang.Object
org.optaplanner.constraint.streams.bavet.common.AbstractNode
org.optaplanner.constraint.streams.bavet.common.AbstractJoinNode<LeftTuple_,Right_,OutTuple_,MutableOutTuple_>
Type Parameters:
LeftTuple_ -
Right_ -
All Implemented Interfaces:
LeftTupleLifecycle<LeftTuple_>, RightTupleLifecycle<UniTuple<Right_>>
Direct Known Subclasses:
AbstractIndexedJoinNode, AbstractUnindexedJoinNode

public abstract class AbstractJoinNode<LeftTuple_ extends Tuple,Right_,OutTuple_ extends Tuple,MutableOutTuple_ extends OutTuple_> extends AbstractNode implements LeftTupleLifecycle<LeftTuple_>, RightTupleLifecycle<UniTuple<Right_>>
This class has two direct children: AbstractIndexedJoinNode and AbstractUnindexedJoinNode. The logic in either is identical, except that the latter removes all indexing work. Therefore any time that one of the classes changes, the other should be inspected if it could benefit from applying the change there too.
  • Field Details

    • inputStoreIndexLeftOutTupleList

      protected final int inputStoreIndexLeftOutTupleList
    • inputStoreIndexRightOutTupleList

      protected final int inputStoreIndexRightOutTupleList
    • dirtyTupleQueue

      protected final Queue<OutTuple_ extends Tuple> dirtyTupleQueue
  • Constructor Details

    • AbstractJoinNode

      protected AbstractJoinNode(int inputStoreIndexLeftOutTupleList, int inputStoreIndexRightOutTupleList, TupleLifecycle<OutTuple_> nextNodesTupleLifecycle, boolean isFiltering, int outputStoreIndexLeftOutEntry, int outputStoreIndexRightOutEntry)
  • Method Details