Class FieldAccessingSolutionCloner<Solution_>

    • Method Detail

      • cloneSolution

        public Solution_ cloneSolution​(Solution_ originalSolution)
        Description copied from interface: SolutionCloner
        Does a planning clone. The returned PlanningSolution clone must fulfill these requirements:
        • The clone must represent the same planning problem. Usually it reuses the same instances of the problem facts and problem fact collections as the original.
        • The clone must have the same (equal) score as the original.
        • The clone must use different, cloned instances of the entities and entity collections. If a cloned entity changes, the original must remain unchanged. If an entity is added or removed in a cloned PlanningSolution, the original PlanningSolution must remain unchanged.
        Note that a class might support more than 1 clone method: planning clone is just one of them.

        This method is thread-safe.

        Specified by:
        cloneSolution in interface SolutionCloner<Solution_>
        Parameters:
        originalSolution - never null, the original PlanningSolution
        Returns:
        never null, the cloned PlanningSolution
      • gizmoFallbackDeepClone

        public Object gizmoFallbackDeepClone​(Object originalValue,
                                             Map<Object,​Object> originalToCloneMap)
        Used by GIZMO when it encounters an undeclared entity class, such as when an abstract planning entity is extended.