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.Regression/3.3/Symbolic/SymbolicRegressionModel.cs

    r4468 r4678  
    3232  [StorableClass]
    3333  [Item("SymbolicRegressionModel", "A symbolic regression model represents an entity that provides estimated values based on input values.")]
    34   public class SymbolicRegressionModel : NamedItem, IDataAnalysisModel {
    35     private SymbolicRegressionModel() : base() { } // for cloning
     34  public sealed class SymbolicRegressionModel : NamedItem, IDataAnalysisModel {
    3635    [StorableConstructor]
    37     protected SymbolicRegressionModel(bool deserializing)
    38       : base(deserializing) {
     36    protected SymbolicRegressionModel(bool deserializing) : base(deserializing) { }
     37    protected SymbolicRegressionModel(SymbolicRegressionModel original, Cloner cloner)
     38      : base(original, cloner) {
     39      tree = (SymbolicExpressionTree)cloner.Clone(original.tree);
     40      interpreter = (ISymbolicExpressionTreeInterpreter)cloner.Clone(original.interpreter);
     41      inputVariables = new List<string>(inputVariables);
    3942    }
     43
    4044    public SymbolicRegressionModel(ISymbolicExpressionTreeInterpreter interpreter, SymbolicExpressionTree tree)
    4145      : base() {
     
    4549    }
    4650
     51    public override IDeepCloneable Clone(Cloner cloner) {
     52      return new SymbolicRegressionModel(this, cloner);
     53    }
     54
    4755    [StorableHook(HookType.AfterDeserialization)]
    48     private void AfterDeserializationHook() {
     56    private void AfterDeserialization() {
    4957      if (inputVariables == null)
    5058        this.inputVariables = tree.IterateNodesPrefix().OfType<VariableTreeNode>().Select(var => var.VariableName).Distinct().ToList();
     
    7381      return interpreter.GetSymbolicExpressionTreeValues(tree, problemData.Dataset, rows);
    7482    }
    75 
    76     public override IDeepCloneable Clone(Cloner cloner) {
    77       var clone = (SymbolicRegressionModel)base.Clone(cloner);
    78       clone.tree = (SymbolicExpressionTree)cloner.Clone(tree);
    79       clone.interpreter = (ISymbolicExpressionTreeInterpreter)cloner.Clone(interpreter);
    80       clone.inputVariables = new List<string>(inputVariables);
    81       return clone;
    82     }
    8383  }
    8484}
Note: See TracChangeset for help on using the changeset viewer.