Free cookie consent management tool by TermsFeed Policy Generator

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

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

#3026:

  • added readme JsonInterfaceReadMe.txt
  • removed dead code
  • fixed a bug in JsonItemConverter -> now the type comparison should work as intended
File size: 3.2 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 = value.ItemName,
21        Description = value.ItemDescription,
22        Value = ((IntValue)value).Value,
23        Minimum = int.MinValue,
24        Maximum = int.MaxValue
25      };
26  }
27
28  public class DoubleValueConverter : BaseConverter {
29    public override int Priority => 1;
30    public override Type ConvertableType => typeof(DoubleValue);
31
32    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) =>
33      ((DoubleValue)item).Value = ((DoubleJsonItem)data).Value;
34
35    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
36      new DoubleJsonItem() {
37        Name = value.ItemName,
38        Description = value.ItemDescription,
39        Value = ((DoubleValue)value).Value,
40        Minimum = double.MinValue,
41        Maximum = double.MaxValue
42      };
43  }
44
45  public class PercentValueConverter : BaseConverter {
46    public override int Priority => 2;
47    public override Type ConvertableType => typeof(PercentValue);
48
49    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) =>
50      ((PercentValue)item).Value = ((DoubleJsonItem)data).Value;
51
52    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
53      new DoubleJsonItem() {
54        Name = value.ItemName,
55        Description = value.ItemDescription,
56        Value = ((PercentValue)value).Value,
57        Minimum = 0.0d,
58        Maximum = 1.0d
59      };
60  }
61
62  public class BoolValueConverter : BaseConverter {
63    public override int Priority => 1;
64    public override Type ConvertableType => typeof(BoolValue);
65
66    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) =>
67      ((BoolValue)item).Value = ((BoolJsonItem)data).Value;
68
69    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
70      new BoolJsonItem() {
71        Name = value.ItemName,
72        Description = value.ItemDescription,
73        Value = ((BoolValue)value).Value
74      };
75  }
76
77  public class DateTimeValueConverter : BaseConverter {
78    public override int Priority => 1;
79    public override Type ConvertableType => typeof(DateTimeValue);
80
81    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) =>
82      ((DateTimeValue)item).Value = ((DateTimeJsonItem)data).Value;
83
84    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
85      new DateTimeJsonItem() {
86        Name = value.ItemName,
87        Description = value.ItemDescription,
88        Value = ((DateTimeValue)value).Value,
89        Minimum = DateTime.MinValue,
90        Maximum = DateTime.MaxValue
91      };
92  }
93}
Note: See TracBrowser for help on using the repository browser.