Class AbstractForEachUniNode<A>
java.lang.Object
ai.timefold.solver.constraint.streams.bavet.common.AbstractNode
ai.timefold.solver.constraint.streams.bavet.uni.AbstractForEachUniNode<A>
- Type Parameters:
A-
- Direct Known Subclasses:
ForEachExcludingNullVarsUniNode,ForEachIncludingNullVarsUniNode
public abstract sealed class AbstractForEachUniNode<A>
extends AbstractNode
permits ForEachIncludingNullVarsUniNode<A>, ForEachExcludingNullVarsUniNode<A>
Filtering nodes are expensive.
Considering that most streams start with a nullity check on genuine planning variables,
it makes sense to create a specialized version of the node for this case (
ForEachExcludingNullVarsUniNode),
as opposed to forcing an extra filter node on the generic case (ForEachIncludingNullVarsUniNode).-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionAbstractForEachUniNode(Class<A> forEachClass, TupleLifecycle<UniTuple<A>> nextNodesTupleLifecycle, int outputStoreSize) -
Method Summary
Modifier and TypeMethodDescriptionInstead of calling the propagation directly from here, we export the propagation queue and allowBavetConstraintSessionto call it.protected final voidinnerUpdate(A a, UniTuple<A> tuple) voidvoidfinal StringtoString()abstract voidMethods inherited from class ai.timefold.solver.constraint.streams.bavet.common.AbstractNode
getLayerIndex, setId, setLayerIndex
-
Field Details
-
tupleMap
-
-
Constructor Details
-
AbstractForEachUniNode
public AbstractForEachUniNode(Class<A> forEachClass, TupleLifecycle<UniTuple<A>> nextNodesTupleLifecycle, int outputStoreSize)
-
-
Method Details
-
insert
-
update
-
innerUpdate
-
retract
-
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
-
getForEachClass
-
toString
- Overrides:
toStringin classAbstractNode
-