Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
09/20/16 17:14:41 (8 years ago)
Author:
bburlacu
Message:

#2672: Add cloning constructors.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/OnlineCalculators/OnlinePearsonsRCalculator.cs

    r14293 r14294  
    4747    public OnlinePearsonsRCalculator() { }
    4848
    49     // private constructor used internally by the Clone() method
    50     private OnlinePearsonsRCalculator(OnlineCovarianceCalculator covCalculator, OnlineMeanAndVarianceCalculator sxCalculator, OnlineMeanAndVarianceCalculator syCalculator) {
    51       this.covCalculator = covCalculator;
    52       this.sxCalculator = sxCalculator;
    53       this.syCalculator = syCalculator;
     49    protected OnlinePearsonsRCalculator(OnlinePearsonsRCalculator other, Cloner cloner) {
     50      covCalculator = (OnlineCovarianceCalculator)other.covCalculator.Clone(cloner);
     51      sxCalculator = (OnlineMeanAndVarianceCalculator)other.sxCalculator.Clone(cloner);
     52      syCalculator = (OnlineMeanAndVarianceCalculator)other.syCalculator.Clone(cloner);
    5453    }
    5554
     
    101100    // IDeepCloneable members
    102101    public object Clone() {
    103       var covCalculatorClone = (OnlineCovarianceCalculator)covCalculator.Clone();
    104       var sxCalculatorClone = (OnlineMeanAndVarianceCalculator)sxCalculator.Clone();
    105       var syCalculatorClone = (OnlineMeanAndVarianceCalculator)syCalculator.Clone();
    106       return new OnlinePearsonsRCalculator(covCalculatorClone, sxCalculatorClone, syCalculatorClone);
     102      var cloner = new Cloner();
     103      return new OnlinePearsonsRCalculator(this, cloner);
    107104    }
    108105
     
    110107      var clone = cloner.GetClone(this);
    111108      if (clone == null) {
    112         var covCalculatorClone = (OnlineCovarianceCalculator)covCalculator.Clone(cloner);
    113         var sxCalculatorClone = (OnlineMeanAndVarianceCalculator)sxCalculator.Clone(cloner);
    114         var syCalculatorClone = (OnlineMeanAndVarianceCalculator)syCalculator.Clone(cloner);
    115         clone = new OnlinePearsonsRCalculator(covCalculatorClone, sxCalculatorClone, syCalculatorClone);
     109        clone = new OnlinePearsonsRCalculator(this, cloner);
    116110        cloner.RegisterClonedObject(this, clone);
    117111      }
Note: See TracChangeset for help on using the changeset viewer.