Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/06/10 01:56:04 (14 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.Algorithms.GeneticAlgorithm/3.3/GeneticAlgorithm.cs

    r4477 r4722  
    192192    [StorableConstructor]
    193193    private GeneticAlgorithm(bool deserializing) : base(deserializing) { }
    194 
     194    [StorableHook(HookType.AfterDeserialization)]
     195    private void AfterDeserialization() {
     196      Initialize();
     197    }
     198
     199    private GeneticAlgorithm(GeneticAlgorithm original, Cloner cloner)
     200      : base(original, cloner) {
     201      qualityAnalyzer = cloner.Clone(original.qualityAnalyzer);
     202      Initialize();
     203    }
    195204    public override IDeepCloneable Clone(Cloner cloner) {
    196       GeneticAlgorithm clone = (GeneticAlgorithm)base.Clone(cloner);
    197       clone.qualityAnalyzer = (BestAverageWorstQualityAnalyzer)cloner.Clone(qualityAnalyzer);
    198       clone.Initialize();
    199       return clone;
     205      return new GeneticAlgorithm(this, cloner);
    200206    }
    201207
     
    265271
    266272    #region Helpers
    267     [StorableHook(HookType.AfterDeserialization)]
    268273    private void Initialize() {
    269274      PopulationSizeParameter.ValueChanged += new EventHandler(PopulationSizeParameter_ValueChanged);
Note: See TracChangeset for help on using the changeset viewer.