Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/29/10 19:26:56 (13 years ago)
Author:
gkronber
Message:

Refactored cloning in DataAnalysis plugins. #922

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis/3.3/DataAnalysisSolution.cs

    r4451 r4678  
    3737    public string Filename { get; set; }
    3838    #endregion
    39    
     39
     40    [StorableConstructor]
     41    protected DataAnalysisSolution(bool deserializing) : base(deserializing) { }
     42    protected DataAnalysisSolution(DataAnalysisSolution original, Cloner cloner)
     43      : base(original, cloner) {
     44      problemData = (DataAnalysisProblemData)cloner.Clone(original.problemData);
     45      model = (IDataAnalysisModel)cloner.Clone(original.model);
     46      lowerEstimationLimit = original.lowerEstimationLimit;
     47      upperEstimationLimit = original.upperEstimationLimit;
     48      AfterDeserialization();
     49    }
    4050    protected DataAnalysisSolution()
    4151      : base() { }
     
    4656      this.lowerEstimationLimit = lowerEstimationLimit;
    4757      this.upperEstimationLimit = upperEstimationLimit;
    48       Initialize();
     58      AfterDeserialization();
    4959    }
    5060
    51     [StorableConstructor]
    52     private DataAnalysisSolution(bool deserializing) : base(deserializing) { }
    5361    [StorableHook(HookType.AfterDeserialization)]
    54     private void Initialize() {
     62    private void AfterDeserialization() {
    5563      if (problemData != null)
    5664        RegisterProblemDataEvents();
     
    140148    public event EventHandler ModelChanged;
    141149    protected virtual void OnModelChanged() {
    142       EventHandler handler = ModelChanged;
    143       if (handler != null)
    144         handler(this, EventArgs.Empty);
     150      EventHandler listeners = ModelChanged;
     151      if (listeners != null)
     152        listeners(this, EventArgs.Empty);
    145153    }
    146154
     
    153161    #endregion
    154162
    155     public override IDeepCloneable Clone(Cloner cloner) {
    156       DataAnalysisSolution clone = (DataAnalysisSolution)base.Clone(cloner);
    157       clone.problemData = (DataAnalysisProblemData)cloner.Clone(problemData);
    158       clone.model = (IDataAnalysisModel)cloner.Clone(model);
    159       clone.lowerEstimationLimit = lowerEstimationLimit;
    160       clone.upperEstimationLimit = upperEstimationLimit;
    161       clone.Initialize();
    162 
    163       return clone;
    164     }
    165163  }
    166164}
Note: See TracChangeset for help on using the changeset viewer.