Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/06/10 01:56:04 (13 years ago)
Author:
swagner
Message:

Merged cloning refactoring branch back into trunk (#922)

Location:
trunk/sources
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources

  • trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/SingleObjectiveTestFunctionSolution.cs

    r3894 r4722  
    122122    }
    123123
     124    [StorableConstructor]
     125    protected SingleObjectiveTestFunctionSolution(bool deserializing) : base(deserializing) { }
     126    protected SingleObjectiveTestFunctionSolution(SingleObjectiveTestFunctionSolution original, Cloner cloner)
     127      : base(original, cloner) {
     128      bestKnownRealVector = cloner.Clone(original.bestKnownRealVector);
     129      bestRealVector = cloner.Clone(original.bestRealVector);
     130      bestQuality = cloner.Clone(original.bestQuality);
     131      population = cloner.Clone(original.population);
     132      evaluator = cloner.Clone(original.evaluator);
     133      bounds = cloner.Clone(original.bounds);
     134      Initialize();
     135    }
    124136    public SingleObjectiveTestFunctionSolution() : base() { }
    125137    public SingleObjectiveTestFunctionSolution(RealVector realVector, DoubleValue quality, ISingleObjectiveTestFunctionProblemEvaluator evaluator)
     
    130142      Initialize();
    131143    }
    132     [StorableConstructor]
    133     private SingleObjectiveTestFunctionSolution(bool deserializing) : base(deserializing) { }
    134144
    135145    [StorableHook(HookType.AfterDeserialization)]
     146    private void AfterDeserialization() {
     147      Initialize();
     148    }
     149
    136150    private void Initialize() {
    137151      if (bestKnownRealVector != null) RegisterBestKnownRealVectorEvents();
     
    143157
    144158    public override IDeepCloneable Clone(Cloner cloner) {
    145       SingleObjectiveTestFunctionSolution clone = new SingleObjectiveTestFunctionSolution();
    146       cloner.RegisterClonedObject(this, clone);
    147       clone.bestKnownRealVector = (RealVector)cloner.Clone(bestKnownRealVector);
    148       clone.bestRealVector = (RealVector)cloner.Clone(bestRealVector);
    149       clone.bestQuality = (DoubleValue)cloner.Clone(bestQuality);
    150       clone.population = (ItemArray<RealVector>)cloner.Clone(population);
    151       clone.evaluator = (ISingleObjectiveTestFunctionProblemEvaluator)cloner.Clone(evaluator);
    152       clone.bounds = (DoubleMatrix)cloner.Clone(bounds);
    153       clone.Initialize();
    154       return clone;
     159      return new SingleObjectiveTestFunctionSolution(this, cloner);
    155160    }
    156161
Note: See TracChangeset for help on using the changeset viewer.