Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/06/10 01:56:04 (13 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/SymbolicExpressionTreeTerminalNode.cs

    r4068 r4722  
    2222using System;
    2323using System.Collections.Generic;
     24using HeuristicLab.Common;
    2425using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
    2526using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     
    2930  public abstract class SymbolicExpressionTreeTerminalNode : SymbolicExpressionTreeNode {
    3031    private static List<SymbolicExpressionTreeNode> emptyList = new List<SymbolicExpressionTreeNode>();
     32    public override IList<SymbolicExpressionTreeNode> SubTrees {
     33      get {
     34        return SymbolicExpressionTreeTerminalNode.emptyList;
     35      }
     36    }
    3137
     38    [StorableConstructor]
     39    protected SymbolicExpressionTreeTerminalNode(bool deserializing) : base(deserializing) { }
     40    // don't call storable constructor of base to prevent allocation of sub-trees list in base!
     41    protected SymbolicExpressionTreeTerminalNode(SymbolicExpressionTreeTerminalNode original, Cloner cloner)
     42      : base() {
     43      // symbols are reused
     44      this.Symbol = original.Symbol;
     45    }
    3246    protected SymbolicExpressionTreeTerminalNode() : base() { }
    33     // don't call  base constructors to prevent allocation of sub-trees list in base!
    34     protected SymbolicExpressionTreeTerminalNode(Symbol symbol) {
     47
     48    protected SymbolicExpressionTreeTerminalNode(Symbol symbol)
     49      : base() {
     50      // symbols are reused
    3551      this.Symbol = symbol;
    36     }
    37     // don't call  base constructors to prevent allocation of sub-trees list in base!
    38     protected SymbolicExpressionTreeTerminalNode(SymbolicExpressionTreeTerminalNode original) {
    39       this.Symbol = original.Symbol;
    4052    }
    4153
     
    4961      throw new NotSupportedException();
    5062    }
    51     public override IList<SymbolicExpressionTreeNode> SubTrees {
    52       get {
    53         return SymbolicExpressionTreeTerminalNode.emptyList;
    54       }
    55     }
    5663  }
    5764}
Note: See TracChangeset for help on using the changeset viewer.