Free cookie consent management tool by TermsFeed Policy Generator

source: branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ParameterizedItemConverter.cs @ 17339

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

#3026 fixed a bug with path generation

File size: 1.1 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.Threading.Tasks;
6using HeuristicLab.Core;
7
8namespace HeuristicLab.JsonInterface {
9  public class ParameterizedItemConverter : BaseConverter {
10    public override void InjectData(IItem item, JsonItem data) {
11      IParameterizedItem pItem = item.Cast<IParameterizedItem>();
12
13      if(data.Parameters != null) {
14        foreach (var sp in data.Parameters)
15          if (pItem.Parameters.TryGetValue(sp.Name, out IParameter param))
16            JsonItemConverter.Inject(param, sp);
17      }
18    }
19
20    public override JsonItem ExtractData(IItem value) {
21      JsonItem item = new JsonItem();
22      item.Name = value.ItemName;
23      item.Type = value.GetType().AssemblyQualifiedName;
24
25      foreach (var param in value.Cast<IParameterizedItem>().Parameters) {
26        JsonItem data = JsonItemConverter.Extract(param);
27        data.Name = param.Name;
28       
29        if (item.Parameters == null)
30          item.Parameters = new List<JsonItem>();
31        item.Parameters.Add(data);
32      }
33      return item;
34    }
35  }
36}
Note: See TracBrowser for help on using the repository browser.