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.TabuSearch/3.3/TabuSearch.cs

    r4437 r4722  
    190190    [StorableConstructor]
    191191    private TabuSearch(bool deserializing) : base(deserializing) { }
    192 
     192    [StorableHook(HookType.AfterDeserialization)]
     193    private void AfterDeserialization() {
     194      Initialize();
     195    }
     196    private TabuSearch(TabuSearch original, Cloner cloner)
     197      : base(original, cloner) {
     198      moveQualityAnalyzer = cloner.Clone(original.moveQualityAnalyzer);
     199      tabuNeighborhoodAnalyzer = cloner.Clone(original.tabuNeighborhoodAnalyzer);
     200      Initialize();
     201    }
    193202    public override IDeepCloneable Clone(Cloner cloner) {
    194       TabuSearch clone = (TabuSearch)base.Clone(cloner);
    195       clone.moveQualityAnalyzer = (BestAverageWorstQualityAnalyzer)cloner.Clone(moveQualityAnalyzer);
    196       clone.tabuNeighborhoodAnalyzer = (TabuNeighborhoodAnalyzer)cloner.Clone(tabuNeighborhoodAnalyzer);
    197       clone.Initialize();
    198       return clone;
     203      return new TabuSearch(this, cloner);
    199204    }
    200205
     
    313318
    314319    #region Helpers
    315     [StorableHook(HookType.AfterDeserialization)]
    316320    private void Initialize() {
    317321      if (Problem != null) {
Note: See TracChangeset for help on using the changeset viewer.