Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/29/10 19:53:44 (13 years ago)
Author:
abeham
Message:

#922

  • Refactored HeuristicLab.Problems.TravelingSalesman
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/CloningRefactoring/HeuristicLab.Problems.TravelingSalesman/3.3/PathTSPTour.cs

    r4477 r4683  
    7979    }
    8080
     81    [StorableConstructor]
     82    private PathTSPTour(bool deserializing) : base(deserializing) { }
     83    private PathTSPTour(PathTSPTour original, Cloner cloner)
     84      : base(original, cloner) {
     85      this.coordinates = cloner.Clone(original.coordinates);
     86      this.permutation = cloner.Clone(original.permutation);
     87      this.quality = cloner.Clone(original.quality);
     88      Initialize();
     89    }
    8190    public PathTSPTour() : base() { }
    8291    public PathTSPTour(DoubleMatrix coordinates)
     
    98107      Initialize();
    99108    }
    100     [StorableConstructor]
    101     private PathTSPTour(bool deserializing) : base(deserializing) { }
     109
     110    public override IDeepCloneable Clone(Cloner cloner) {
     111      return new PathTSPTour(this, cloner);
     112    }
    102113
    103114    [StorableHook(HookType.AfterDeserialization)]
     115    private void AfterDeserialization() {
     116      Initialize();
     117    }
     118
    104119    private void Initialize() {
    105120      if (coordinates != null) RegisterCoordinatesEvents();
    106121      if (permutation != null) RegisterPermutationEvents();
    107122      if (quality != null) RegisterQualityEvents();
    108     }
    109 
    110     public override IDeepCloneable Clone(Cloner cloner) {
    111       PathTSPTour clone = new PathTSPTour();
    112       cloner.RegisterClonedObject(this, clone);
    113       clone.coordinates = (DoubleMatrix)cloner.Clone(coordinates);
    114       clone.permutation = (Permutation)cloner.Clone(permutation);
    115       clone.quality = (DoubleValue)cloner.Clone(quality);
    116       clone.Initialize();
    117       return clone;
    118123    }
    119124
Note: See TracChangeset for help on using the changeset viewer.