Class AbstractFlattenLastNode<InTuple_ extends AbstractTuple,OutTuple_ extends AbstractTuple,EffectiveItem_,FlattenedItem_>
java.lang.Object
ai.timefold.solver.constraint.streams.bavet.common.AbstractNode
ai.timefold.solver.constraint.streams.bavet.common.AbstractFlattenLastNode<InTuple_,OutTuple_,EffectiveItem_,FlattenedItem_>
- All Implemented Interfaces:
TupleLifecycle<InTuple_>
public abstract class AbstractFlattenLastNode<InTuple_ extends AbstractTuple,OutTuple_ extends AbstractTuple,EffectiveItem_,FlattenedItem_>
extends AbstractNode
implements TupleLifecycle<InTuple_>
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractFlattenLastNode(int flattenLastStoreIndex, Function<EffectiveItem_, Iterable<FlattenedItem_>> mappingFunction, TupleLifecycle<OutTuple_> nextNodesTupleLifecycle) -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract OutTuple_createTuple(InTuple_ originalTuple, FlattenedItem_ item) protected abstract EffectiveItem_getEffectiveFactIn(InTuple_ tuple) protected abstract FlattenedItem_getEffectiveFactOut(OutTuple_ outTuple) 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.constraint.streams.bavet.common.AbstractNode
getLayerIndex, setId, setLayerIndex, toString
-
Constructor Details
-
AbstractFlattenLastNode
protected AbstractFlattenLastNode(int flattenLastStoreIndex, Function<EffectiveItem_, Iterable<FlattenedItem_>> mappingFunction, TupleLifecycle<OutTuple_> nextNodesTupleLifecycle)
-
-
Method Details
-
insert
- Specified by:
insertin interfaceTupleLifecycle<InTuple_ extends AbstractTuple>
-
createTuple
-
update
- Specified by:
updatein interfaceTupleLifecycle<InTuple_ extends AbstractTuple>
-
getEffectiveFactIn
-
getEffectiveFactOut
-
retract
- Specified by:
retractin interfaceTupleLifecycle<InTuple_ extends AbstractTuple>
-
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
-