Class AbstractForEachUniNode<A>

java.lang.Object
ai.timefold.solver.core.impl.bavet.common.AbstractNode
ai.timefold.solver.core.impl.bavet.uni.AbstractForEachUniNode<A>
Type Parameters:
A -
All Implemented Interfaces:
BavetRootNode<A>
Direct Known Subclasses:
ForEachFilteredUniNode, ForEachUnfilteredUniNode

@NullMarked public abstract sealed class AbstractForEachUniNode<A> extends AbstractNode implements BavetRootNode<A> permits ForEachFilteredUniNode<A>, ForEachUnfilteredUniNode<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 (ForEachFilteredUniNode), as opposed to forcing an extra filter node on the generic case (ForEachUnfilteredUniNode).