Annotation Type DeepPlanningClone
-
@Target({TYPE,METHOD,FIELD}) @Inherited @Retention(RUNTIME) public @interface DeepPlanningClone
Marks a problem fact class as being required to be deep planning cloned. Not needed for aPlanningSolution
orPlanningEntity
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
(orMap
) properties. Not needed for aCollection
(orMap
) property with a generic type ofPlanningEntity
or a class with a DeepPlanningClone annotation, because those are automatically deep cloned. Note: If it annotates a property (getter method for a field) returningCollection
(orMap
), it clones theCollection
(orMap
), 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 withPlanningSolution.solutionCloner()
.