Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/06/10 01:56:04 (14 years ago)
Author:
swagner
Message:

Merged cloning refactoring branch back into trunk (#922)

Location:
trunk/sources
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources

  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Classification/3.3/Symbolic/SymbolicClassificationProblem.cs

    r4452 r4722  
    4242  [StorableClass]
    4343  [Creatable("Problems")]
    44   public class SymbolicClassificationProblem : SingleObjectiveClassificationProblem<ISymbolicClassificationEvaluator, ISymbolicExpressionTreeCreator>, IStorableContent {
     44  public sealed class SymbolicClassificationProblem : SingleObjectiveClassificationProblem<ISymbolicClassificationEvaluator, ISymbolicExpressionTreeCreator>, IStorableContent {
    4545    private const string SymbolicExpressionTreeInterpreterParameterName = "SymbolicExpressionTreeInterpreter";
    4646    private const string FunctionTreeGrammarParameterName = "FunctionTreeGrammar";
     
    5757    public ISymbolicExpressionTreeInterpreter SymbolicExpressionTreeInterpreter {
    5858      get { return SymbolicExpressionTreeInterpreterParameter.Value; }
    59       protected set { SymbolicExpressionTreeInterpreterParameter.Value = value; }
     59      private set { SymbolicExpressionTreeInterpreterParameter.Value = value; }
    6060    }
    6161    public IValueParameter<ISymbolicExpressionTreeInterpreter> SymbolicExpressionTreeInterpreterParameter {
     
    6565    public ISymbolicExpressionGrammar FunctionTreeGrammar {
    6666      get { return (ISymbolicExpressionGrammar)FunctionTreeGrammarParameter.Value; }
    67       protected set { FunctionTreeGrammarParameter.Value = value; }
     67      private set { FunctionTreeGrammarParameter.Value = value; }
    6868    }
    6969    public IValueParameter<ISymbolicExpressionGrammar> FunctionTreeGrammarParameter {
     
    7373    public IntValue MaxExpressionLength {
    7474      get { return MaxExpressionLengthParameter.Value; }
    75       protected set { MaxExpressionLengthParameter.Value = value; }
     75      private set { MaxExpressionLengthParameter.Value = value; }
    7676    }
    7777    public IValueParameter<IntValue> MaxExpressionLengthParameter {
     
    8181    public IntValue MaxExpressionDepth {
    8282      get { return MaxExpressionDepthParameter.Value; }
    83       protected set { MaxExpressionDepthParameter.Value = value; }
     83      private set { MaxExpressionDepthParameter.Value = value; }
    8484    }
    8585    public ValueParameter<IntValue> MaxExpressionDepthParameter {
     
    8989    public DoubleValue UpperEstimationLimit {
    9090      get { return UpperEstimationLimitParameter.Value; }
    91       protected set { UpperEstimationLimitParameter.Value = value; }
     91      private set { UpperEstimationLimitParameter.Value = value; }
    9292    }
    9393    public IValueParameter<DoubleValue> UpperEstimationLimitParameter {
     
    9797    public DoubleValue LowerEstimationLimit {
    9898      get { return LowerEstimationLimitParameter.Value; }
    99       protected set { LowerEstimationLimitParameter.Value = value; }
     99      private set { LowerEstimationLimitParameter.Value = value; }
    100100    }
    101101    public IValueParameter<DoubleValue> LowerEstimationLimitParameter {
     
    105105    public IntValue MaxFunctionDefiningBranches {
    106106      get { return MaxFunctionDefiningBranchesParameter.Value; }
    107       protected set { MaxFunctionDefiningBranchesParameter.Value = value; }
     107      private set { MaxFunctionDefiningBranchesParameter.Value = value; }
    108108    }
    109109    public IValueParameter<IntValue> MaxFunctionDefiningBranchesParameter {
     
    113113    public IntValue MaxFunctionArguments {
    114114      get { return MaxFunctionArgumentsParameter.Value; }
    115       protected set { MaxFunctionArgumentsParameter.Value = value; }
     115      private set { MaxFunctionArgumentsParameter.Value = value; }
    116116    }
    117117    public IValueParameter<IntValue> MaxFunctionArgumentsParameter {
     
    133133
    134134    [StorableConstructor]
    135     protected SymbolicClassificationProblem(bool deserializing) : base(deserializing) { }
     135    private SymbolicClassificationProblem(bool deserializing) : base(deserializing) { }
     136    private SymbolicClassificationProblem(SymbolicClassificationProblem original, Cloner cloner)
     137      : base(original, cloner) {
     138      RegisterParameterEvents();
     139
     140      UpdateEstimationLimits();
     141      ParameterizeEvaluator();
     142      ParameterizeSolutionCreator();
     143      ParameterizeGrammar();
     144      ParameterizeOperators();
     145      ParameterizeAnalyzers();
     146    }
    136147    public SymbolicClassificationProblem()
    137148      : base() {
     
    167178    }
    168179
    169 
    170     [StorableHook(HookType.AfterDeserialization)]
    171     private void AfterDeserialization() {
    172 
     180    public override IDeepCloneable Clone(Cloner cloner) {
     181      return new SymbolicClassificationProblem(this, cloner);
    173182    }
    174183
     
    213222      OnGrammarChanged();
    214223    }
    215     protected virtual void OnGrammarChanged() {
     224    private void OnGrammarChanged() {
    216225      ParameterizeGrammar();
    217226    }
     
    225234      OnArchitectureParameterChanged();
    226235    }
    227     protected virtual void OnArchitectureParameterChanged() {
    228       ParameterizeGrammar();
    229     }
    230 
    231     protected virtual void InitializeOperators() {
     236    private void OnArchitectureParameterChanged() {
     237      ParameterizeGrammar();
     238    }
     239
     240    private void InitializeOperators() {
    232241      Operators.AddRange(ApplicationManager.Manager.GetInstances<ISymbolicExpressionTreeOperator>().OfType<IOperator>());
    233242      Operators.Add(new MinAverageMaxSymbolicExpressionTreeSizeAnalyzer());
Note: See TracChangeset for help on using the changeset viewer.