Free cookie consent management tool by TermsFeed Policy Generator

source: branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueTypeValueConverter.cs @ 17473

Last change on this file since 17473 was 17473, checked in by dpiringe, 4 years ago

#3026:

  • refactored inheritance structure of json items, now the default JsonItem is an abstract class without properties Value and Range -> splitted up into new interfaces
  • updated view models for new json item structure
  • updated SingleLineArrayJsonWriter
File size: 3.5 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.Threading.Tasks;
6using HeuristicLab.Core;
7using HeuristicLab.Data;
8
9namespace HeuristicLab.JsonInterface {
10
11  public class IntValueConverter : BaseConverter {
12    public override int Priority => 1;
13    public override Type ConvertableType => typeof(IntValue);
14
15    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) =>
16      ((IntValue)item).Value = ((IntJsonItem)data).Value;
17
18    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
19      new IntJsonItem() {
20        //Name = "[OverridableParamName]",
21        Name = value.ItemName,
22        Description = value.ItemDescription,
23        Value = ((IntValue)value).Value,
24        Minimum = int.MinValue,
25        Maximum = int.MaxValue
26      };
27  }
28
29  public class DoubleValueConverter : BaseConverter {
30    public override int Priority => 1;
31    public override Type ConvertableType => typeof(DoubleValue);
32
33    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) =>
34      ((DoubleValue)item).Value = ((DoubleJsonItem)data).Value;
35
36    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
37      new DoubleJsonItem() {
38        //Name = "[OverridableParamName]",
39        Name = value.ItemName,
40        Description = value.ItemDescription,
41        Value = ((DoubleValue)value).Value,
42        Minimum = double.MinValue,
43        Maximum = double.MaxValue
44      };
45  }
46
47  public class PercentValueConverter : BaseConverter {
48    public override int Priority => 2;
49    public override Type ConvertableType => typeof(PercentValue);
50
51    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) =>
52      ((PercentValue)item).Value = ((DoubleJsonItem)data).Value;
53
54    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
55      new DoubleJsonItem() {
56        //Name = "[OverridableParamName]",
57        Name = value.ItemName,
58        Description = value.ItemDescription,
59        Value = ((PercentValue)value).Value,
60        Minimum = double.MinValue,
61        Maximum = double.MaxValue
62      };
63  }
64
65  public class BoolValueConverter : BaseConverter {
66    public override int Priority => 1;
67    public override Type ConvertableType => typeof(BoolValue);
68
69    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) =>
70      ((BoolValue)item).Value = ((BoolJsonItem)data).Value;
71
72    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
73      new BoolJsonItem() {
74        //Name = "[OverridableParamName]",
75        Name = value.ItemName,
76        Description = value.ItemDescription,
77        Value = ((BoolValue)value).Value
78      };
79  }
80
81  public class DateTimeValueConverter : BaseConverter {
82    public override int Priority => 1;
83    public override Type ConvertableType => typeof(DateTimeValue);
84
85    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) =>
86      ((DateTimeValue)item).Value = ((DateTimeJsonItem)data).Value;
87
88    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
89      new DateTimeJsonItem() {
90        //Name = "[OverridableParamName]",
91        Name = value.ItemName,
92        Description = value.ItemDescription,
93        Value = ((DateTimeValue)value).Value,
94        Minimum = DateTime.MinValue,
95        Maximum = DateTime.MaxValue
96      };
97  }
98}
Note: See TracBrowser for help on using the repository browser.