Class FieldAccessingSolutionCloner<Solution_>

java.lang.Object
org.optaplanner.core.impl.domain.solution.cloner.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_>
  • Constructor Details

  • Method Details

    • 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