Free cookie consent management tool by TermsFeed Policy Generator

source: branches/3026_IntegrationIntoSymSpace/HeuristicLab.Manufacture/ParameterTransformer/ParameterizedItemTransformer.cs @ 17271

Last change on this file since 17271 was 17271, checked in by dpiringe, 5 years ago

#3026

  • renamed ParameterData to Component
  • renamed File Template.cs to Component.cs
File size: 1.2 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.Threading.Tasks;
6using HeuristicLab.Core;
7
8namespace HeuristicLab.Manufacture
9{
10  public class ParameterizedItemTransformer : BaseTransformer {
11   
12    public override void InjectData(IItem item, Component data) {
13      IParameterizedItem pItem = item.Cast<IParameterizedItem>();
14
15      foreach (var sp in data.Parameters)
16        if (pItem.Parameters.TryGetValue(sp.Name, out IParameter param))
17          Transformer.Inject(param, sp);
18    }
19
20    public override Component ExtractData(IItem value) {
21      List<Component> list = new List<Component>();
22
23      Component obj = new Component();
24      obj.Name = value.ItemName;
25      obj.Type = value.GetType().AssemblyQualifiedName;
26      obj.ParameterizedItems = list;
27      list.Add(obj);
28
29      foreach (var param in value.Cast<IParameterizedItem>().Parameters) {
30        if (!param.Hidden) {
31          Component data = Transformer.Extract(param);
32          obj[data.Name] = data;
33          if(data.ParameterizedItems != null)
34            list.AddRange(data.ParameterizedItems);
35        }
36      }
37      return obj;
38    }
39  }
40}
Note: See TracBrowser for help on using the repository browser.