source: branches/3136_Structural_GP/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/SubFunctionTreeNode.cs @ 18069

Last change on this file since 18069 was 18069, checked in by dpiringe, 9 months ago

#3136

  • added linear scaling support for structure template parameter
File size: 1.4 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.Threading.Tasks;
6using HEAL.Attic;
7using HeuristicLab.Common;
8using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
9
10namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
11  [StorableType("05130B5F-0125-4367-A4E9-C42D1085024E")]
12  public class SubFunctionTreeNode : SymbolicExpressionTreeNode {
13
14    #region Properties
15    public new SubFunctionSymbol Symbol => (SubFunctionSymbol)base.Symbol;
16
17    [Storable]
18    public IEnumerable<string> Arguments { get; set; } = Enumerable.Empty<string>();
19   
20    [Storable]
21    public string Name { get; set; }
22    #endregion
23
24    #region Constructors
25    public SubFunctionTreeNode(SubFunctionSymbol symbol) : base(symbol) { }
26
27    [StorableConstructor]
28    protected SubFunctionTreeNode(StorableConstructorFlag _) : base(_) { }
29
30    protected SubFunctionTreeNode(SubFunctionTreeNode original, Cloner cloner) : base(original, cloner) {
31      Arguments = original.Arguments;
32      Name = (string)original.Name.Clone();
33    }
34    #endregion
35
36    #region Cloning
37    public override IDeepCloneable Clone(Cloner cloner) => new SubFunctionTreeNode(this, cloner);
38    #endregion
39
40    public override string ToString() {
41      if (string.IsNullOrEmpty(Name))
42        return base.ToString();
43      return $"{Name}({string.Join(",", Arguments)})";
44    }
45   
46  }
47}
Note: See TracBrowser for help on using the repository browser.