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.Encodings.SymbolicExpressionTreeEncoding/3.3/GlobalSymbolicExpressionGrammar.cs

    r4262 r4722  
    6969    private Defun defunSymbol;
    7070
     71    [StorableConstructor]
     72    private GlobalSymbolicExpressionGrammar(bool deserializing) : base(deserializing) { }
     73    private GlobalSymbolicExpressionGrammar(GlobalSymbolicExpressionGrammar original, Cloner cloner)
     74      : base(original, cloner) {
     75      defunSymbol = (Defun)cloner.Clone(original.defunSymbol);
     76      maxFunctionArguments = original.maxFunctionArguments;
     77      minFunctionArguments = original.minFunctionArguments;
     78      maxFunctionDefinitions = original.maxFunctionDefinitions;
     79      minFunctionDefinitions = original.minFunctionDefinitions;
     80    }
     81
    7182    public GlobalSymbolicExpressionGrammar(ISymbolicExpressionGrammar mainBranchGrammar)
    7283      : base(mainBranchGrammar) {
     
    100111          SetAllowedChild(defunSymbol, Symbols.Where(s => s.Name == symb.Name).First(), 0);
    101112      }
    102     }
    103 
    104     //ctor for cloning
    105     private GlobalSymbolicExpressionGrammar() : base() { }
    106     [StorableConstructor]
    107     private GlobalSymbolicExpressionGrammar(bool deserializing)
    108       : base(deserializing) {
    109113    }
    110114
     
    171175
    172176    public override IDeepCloneable Clone(Cloner cloner) {
    173       GlobalSymbolicExpressionGrammar clone = (GlobalSymbolicExpressionGrammar)base.Clone(cloner);
    174       clone.defunSymbol = (Defun)cloner.Clone(this.defunSymbol);
    175       clone.maxFunctionArguments = this.maxFunctionArguments;
    176       clone.minFunctionArguments = this.minFunctionArguments;
    177       clone.maxFunctionDefinitions = this.maxFunctionDefinitions;
    178       clone.minFunctionDefinitions = this.minFunctionDefinitions;
    179       return clone;
     177      return new GlobalSymbolicExpressionGrammar(this, cloner);
    180178    }
    181179  }
Note: See TracChangeset for help on using the changeset viewer.