Class ForEachFromSolutionUniNode<Solution_,A>
java.lang.Object
ai.timefold.solver.core.impl.bavet.common.AbstractNode
ai.timefold.solver.core.impl.bavet.uni.AbstractForEachUniNode<A>
ai.timefold.solver.core.impl.bavet.uni.ForEachIncludingUnassignedUniNode<A>
ai.timefold.solver.core.impl.bavet.uni.ForEachFromSolutionUniNode<Solution_,A>
- Type Parameters:
Solution_-A-
- All Implemented Interfaces:
AbstractForEachUniNode.InitializableForEachNode<Solution_>,AutoCloseable
@NullMarked
public final class ForEachFromSolutionUniNode<Solution_,A>
extends ForEachIncludingUnassignedUniNode<A>
implements AbstractForEachUniNode.InitializableForEachNode<Solution_>
Node that reads a property from a planning solution.
Since anything directly on a solution is only allowed to change with a new working solution,
this node has the following properties:
- Requires initialization when setting new working solution. Inserts at any other time are not allowed.
- Does not allow retracts. Items can not be removed.
- Updates should still be possible, since the values may be planning entities.
-
Nested Class Summary
Nested classes/interfaces inherited from class ai.timefold.solver.core.impl.bavet.uni.AbstractForEachUniNode
AbstractForEachUniNode.InitializableForEachNode<Solution_>, AbstractForEachUniNode.LifecycleOperation -
Field Summary
Fields inherited from class ai.timefold.solver.core.impl.bavet.uni.AbstractForEachUniNode
tupleMap -
Constructor Summary
ConstructorsConstructorDescriptionForEachFromSolutionUniNode(FromSolutionValueCollectingFunction<Solution_, A> valueCollectingFunction, TupleLifecycle<UniTuple<A>> nextNodesTupleLifecycle, int outputStoreSize) -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()voidinitialize(Solution_ workingSolution, SupplyManager supplyManager) voidvoidbooleansupports(AbstractForEachUniNode.LifecycleOperation lifecycleOperation) Determines if this node supports the given lifecycle operation.Methods inherited from class ai.timefold.solver.core.impl.bavet.uni.ForEachIncludingUnassignedUniNode
updateMethods inherited from class ai.timefold.solver.core.impl.bavet.uni.AbstractForEachUniNode
getForEachClass, getPropagator, retractExisting, toString, updateExistingMethods inherited from class ai.timefold.solver.core.impl.bavet.common.AbstractNode
getId, getLayerIndex, setId, setLayerIndex
-
Constructor Details
-
ForEachFromSolutionUniNode
public ForEachFromSolutionUniNode(FromSolutionValueCollectingFunction<Solution_, A> valueCollectingFunction, TupleLifecycle<UniTuple<A>> nextNodesTupleLifecycle, int outputStoreSize)
-
-
Method Details
-
initialize
- Specified by:
initializein interfaceAbstractForEachUniNode.InitializableForEachNode<Solution_>
-
insert
- Overrides:
insertin classAbstractForEachUniNode<A>
-
retract
- Overrides:
retractin classAbstractForEachUniNode<A>
-
supports
Description copied from class:AbstractForEachUniNodeDetermines if this node supports the given lifecycle operation. Unsupported nodes will not be called during that lifecycle operation.- Overrides:
supportsin classForEachIncludingUnassignedUniNode<A>- Parameters:
lifecycleOperation- the lifecycle operation to check- Returns:
trueif the given lifecycle operation is supported; otherwise,false.
-
close
public void close()- Specified by:
closein interfaceAbstractForEachUniNode.InitializableForEachNode<Solution_>- Specified by:
closein interfaceAutoCloseable
-