Changeset 4678 for branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/SymbolicRegressionModel.cs
- Timestamp:
- 10/29/10 19:26:56 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/SymbolicRegressionModel.cs
r4468 r4678 32 32 [StorableClass] 33 33 [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 { 36 35 [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); 39 42 } 43 40 44 public SymbolicRegressionModel(ISymbolicExpressionTreeInterpreter interpreter, SymbolicExpressionTree tree) 41 45 : base() { … … 45 49 } 46 50 51 public override IDeepCloneable Clone(Cloner cloner) { 52 return new SymbolicRegressionModel(this, cloner); 53 } 54 47 55 [StorableHook(HookType.AfterDeserialization)] 48 private void AfterDeserialization Hook() {56 private void AfterDeserialization() { 49 57 if (inputVariables == null) 50 58 this.inputVariables = tree.IterateNodesPrefix().OfType<VariableTreeNode>().Select(var => var.VariableName).Distinct().ToList(); … … 73 81 return interpreter.GetSymbolicExpressionTreeValues(tree, problemData.Dataset, rows); 74 82 } 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 }83 83 } 84 84 }
Note: See TracChangeset
for help on using the changeset viewer.