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
Constructors Modifier Constructor Description protectedAbstractFlattenLastNode(int flattenLastStoreIndex, Function<EffectiveItem_,Iterable<FlattenedItem_>> mappingFunction, TupleLifecycle<OutTuple_> nextNodesTupleLifecycle)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract OutTuple_createTuple(InTuple_ originalTuple, FlattenedItem_ item)protected abstract EffectiveItem_getEffectiveFactIn(InTuple_ tuple)protected abstract FlattenedItem_getEffectiveFactOut(OutTuple_ outTuple)PropagatorgetPropagator()Instead of calling the propagation directly from here, we export the propagation queue and allowBavetConstraintSessionto call it.voidinsert(InTuple_ tuple)voidretract(InTuple_ tuple)voidupdate(InTuple_ tuple)-
Methods inherited from class ai.timefold.solver.constraint.streams.bavet.common.AbstractNode
getLayerIndex, setId, setLayerIndex, toString
-
-
-
-
Constructor Detail
-
AbstractFlattenLastNode
protected AbstractFlattenLastNode(int flattenLastStoreIndex, Function<EffectiveItem_,Iterable<FlattenedItem_>> mappingFunction, TupleLifecycle<OutTuple_> nextNodesTupleLifecycle)
-
-
Method Detail
-
insert
public final void insert(InTuple_ tuple)
- Specified by:
insertin interfaceTupleLifecycle<InTuple_ extends AbstractTuple>
-
createTuple
protected abstract OutTuple_ createTuple(InTuple_ originalTuple, FlattenedItem_ item)
-
update
public final void update(InTuple_ tuple)
- Specified by:
updatein interfaceTupleLifecycle<InTuple_ extends AbstractTuple>
-
getEffectiveFactIn
protected abstract EffectiveItem_ getEffectiveFactIn(InTuple_ tuple)
-
getEffectiveFactOut
protected abstract FlattenedItem_ getEffectiveFactOut(OutTuple_ outTuple)
-
retract
public final void retract(InTuple_ tuple)
- Specified by:
retractin interfaceTupleLifecycle<InTuple_ extends AbstractTuple>
-
getPropagator
public Propagator 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
-
-