Class FieldAccessingSolutionCloner<Solution_>

  • Type Parameters:
    Solution_ - the solution type, the class with the PlanningSolution annotation
    All Implemented Interfaces:
    SolutionCloner<Solution_>

    public final class FieldAccessingSolutionCloner<Solution_>
    extends Object
    implements SolutionCloner<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