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

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

#3136

  • modified the StructureTemplateView to enable colorful tree nodes of type SubFunctionTreeNode
  • refactored SubFunctionTreeNode, SubFunction and StructureTemplate
File size: 1.3 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    public IEnumerable<string> Arguments { get; set; } = Enumerable.Empty<string>();
18   
19    public string Name { get; set; }
20    #endregion
21
22    #region Constructors
23    public SubFunctionTreeNode(SubFunctionSymbol symbol) : base(symbol) { }
24
25    [StorableConstructor]
26    protected SubFunctionTreeNode(StorableConstructorFlag _) : base(_) { }
27
28    protected SubFunctionTreeNode(SubFunctionTreeNode original, Cloner cloner) : base(original, cloner) { }
29    #endregion
30
31    #region Cloning
32    public override IDeepCloneable Clone(Cloner cloner) => new SubFunctionTreeNode(this, cloner);
33    #endregion
34
35    public override string ToString() {
36      if (string.IsNullOrEmpty(Name))
37        return base.ToString();
38      return $"{Name}({string.Join(",", Arguments)})";
39    }
40   
41  }
42}
Note: See TracBrowser for help on using the repository browser.