Annotation Interface DeepPlanningClone
Marks a problem fact class as being required to be deep planning cloned.
Not needed for a
PlanningSolution
or PlanningEntity
because those are automatically deep cloned.
It can also mark a property (getter for a field) as being required to be deep planning cloned.
This is especially useful for Collection
(or Map
) properties.
Not needed for a Collection
(or Map
) property with a generic type of PlanningEntity
or a class with a DeepPlanningClone annotation, because those are automatically deep cloned.
Note: If it annotates a property (getter method for a field) returning Collection
(or Map
),
it clones the Collection
(or Map
),
but its elements (or keys and values) are only cloned if they are of a type that needs to be planning cloned.
This annotation is ignored if a custom SolutionCloner
is set with PlanningSolution.solutionCloner()
.