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.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithm.cs

    r4437 r4722  
    197197    [StorableConstructor]
    198198    private IslandGeneticAlgorithm(bool deserializing) : base(deserializing) { }
     199    [StorableHook(HookType.AfterDeserialization)]
     200    private void AfterDeserialization() {
     201      Initialize();
     202    }
     203    private IslandGeneticAlgorithm(IslandGeneticAlgorithm original, Cloner cloner)
     204      : base(original, cloner) {
     205      islandQualityAnalyzer = cloner.Clone(original.islandQualityAnalyzer);
     206      qualityAnalyzer = cloner.Clone(original.qualityAnalyzer);
     207      Initialize();
     208    }
     209    public override IDeepCloneable Clone(Cloner cloner) {
     210      return new IslandGeneticAlgorithm(this, cloner);
     211    }
     212
    199213    public IslandGeneticAlgorithm()
    200214      : base() {
     
    282296    }
    283297
    284     public override IDeepCloneable Clone(Cloner cloner) {
    285       IslandGeneticAlgorithm clone = (IslandGeneticAlgorithm)base.Clone(cloner);
    286       clone.islandQualityAnalyzer = (BestAverageWorstQualityAnalyzer)cloner.Clone(islandQualityAnalyzer);
    287       clone.qualityAnalyzer = (BestAverageWorstQualityAnalyzer)cloner.Clone(qualityAnalyzer);
    288       clone.Initialize();
    289       return clone;
    290     }
    291 
    292298    public override void Prepare() {
    293299      if (Problem != null) base.Prepare();
     
    362368
    363369    #region Helpers
    364     [StorableHook(HookType.AfterDeserialization)]
    365370    private void Initialize() {
    366371      PopulationSizeParameter.ValueChanged += new EventHandler(PopulationSizeParameter_ValueChanged);
Note: See TracChangeset for help on using the changeset viewer.