Class AbstractPrecomputeNode<Tuple_ extends Tuple>
java.lang.Object
ai.timefold.solver.core.impl.bavet.common.AbstractNode
ai.timefold.solver.core.impl.bavet.common.AbstractPrecomputeNode<Tuple_>
- All Implemented Interfaces:
BavetRootNode<Object>
- Direct Known Subclasses:
PrecomputeBiNode,PrecomputeQuadNode,PrecomputeTriNode,PrecomputeUniNode
@NullMarked
public abstract class AbstractPrecomputeNode<Tuple_ extends Tuple>
extends AbstractNode
implements BavetRootNode<Object>
-
Nested Class Summary
Nested classes/interfaces inherited from interface ai.timefold.solver.core.impl.bavet.common.BavetRootNode
BavetRootNode.LifecycleOperation -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractPrecomputeNode(Supplier<BavetPrecomputeBuildHelper<Tuple_>> precomputeBuildHelperSupplier, TupleLifecycle<Tuple_> nextNodesTupleLifecycle, Class<?>[] sourceClasses) -
Method Summary
Modifier and TypeMethodDescriptionfinal booleanallowsInstancesOf(Class<?> clazz) final PropagatorInstead of calling the propagation directly from here, we export the propagation queue and allowBavetConstraintSessionto call it.final Class<?>[]final voidprotected abstract Tuple_remapTuple(Tuple_ tuple) final voidfinal booleansupports(BavetRootNode.LifecycleOperation lifecycleOperation) Determines if this node supports the given lifecycle operation.final voidMethods inherited from class ai.timefold.solver.core.impl.bavet.common.AbstractNode
addLocationSet, getId, getLayerIndex, getLocationSet, setId, setLayerIndex, toString
-
Constructor Details
-
AbstractPrecomputeNode
protected AbstractPrecomputeNode(Supplier<BavetPrecomputeBuildHelper<Tuple_>> precomputeBuildHelperSupplier, TupleLifecycle<Tuple_> nextNodesTupleLifecycle, Class<?>[] sourceClasses)
-
-
Method Details
-
getStreamKind
- Specified by:
getStreamKindin classAbstractNode
-
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
-
allowsInstancesOf
- Specified by:
allowsInstancesOfin interfaceBavetRootNode<Tuple_ extends Tuple>
-
getSourceClasses
- Specified by:
getSourceClassesin interfaceBavetRootNode<Tuple_ extends Tuple>
-
supports
Description copied from interface:BavetRootNodeDetermines if this node supports the given lifecycle operation. Unsupported nodes will not be called during that lifecycle operation.- Specified by:
supportsin interfaceBavetRootNode<Tuple_ extends Tuple>- Parameters:
lifecycleOperation- the lifecycle operation to check- Returns:
trueif the given lifecycle operation is supported; otherwise,false.
-
insert
- Specified by:
insertin interfaceBavetRootNode<Tuple_ extends Tuple>
-
update
- Specified by:
updatein interfaceBavetRootNode<Tuple_ extends Tuple>
-
retract
- Specified by:
retractin interfaceBavetRootNode<Tuple_ extends Tuple>
-
remapTuple
-