java.lang.Object
ai.timefold.solver.core.impl.bavet.common.AbstractNode
ai.timefold.solver.core.impl.bavet.common.AbstractFlattenNode<InTuple_,OutTuple_,FlattenedItem_>
- All Implemented Interfaces:
TupleLifecycle<InTuple_>
- Direct Known Subclasses:
FlattenBiNode,FlattenLastBiNode,FlattenLastQuadNode,FlattenLastTriNode,FlattenLastUniNode,FlattenTriNode,FlattenUniNode
public abstract class AbstractFlattenNode<InTuple_ extends Tuple,OutTuple_ extends Tuple,FlattenedItem_>
extends AbstractNode
implements TupleLifecycle<InTuple_>
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractFlattenNode(int flattenStoreIndex, TupleLifecycle<OutTuple_> nextNodesTupleLifecycle) -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract OutTuple_createTuple(InTuple_ originalTuple, FlattenedItem_ item) protected abstract Iterable<FlattenedItem_>extractIterable(InTuple_ tuple) Instead of calling the propagation directly from here, we export the propagation queue and allowBavetConstraintSessionto call it.final voidfinal voidfinal voidMethods inherited from class ai.timefold.solver.core.impl.bavet.common.AbstractNode
addLocationSet, getId, getLayerIndex, getLocationSet, setId, setLayerIndex, toString
-
Constructor Details
-
AbstractFlattenNode
protected AbstractFlattenNode(int flattenStoreIndex, TupleLifecycle<OutTuple_> nextNodesTupleLifecycle)
-
-
Method Details
-
getStreamKind
- Specified by:
getStreamKindin classAbstractNode
-
insert
- Specified by:
insertin interfaceTupleLifecycle<InTuple_ extends Tuple>
-
createTuple
-
update
- Specified by:
updatein interfaceTupleLifecycle<InTuple_ extends Tuple>
-
extractIterable
-
retract
- Specified by:
retractin interfaceTupleLifecycle<InTuple_ extends Tuple>
-
getPropagator
Description copied from class:AbstractNodeInstead of calling the propagation directly from here, we export the propagation queue and allowBavetConstraintSessionto call it. This is done with the idea thatPropagatoronly has two implementations (unlikeAbstractNodewith myriad implementations) and therefore JVM call site optimizations will kick in to make the method dispatch faster.- Specified by:
getPropagatorin classAbstractNode- Returns:
- never null; the
PropagationQueuein use by this node
-