Free cookie consent management tool by TermsFeed Policy Generator

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

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

#3026:

  • added property Description in IJsonItem and updated all construction calls
  • updated UnsupportedJsonItem with unsupported property Description
  • updated JsonItemBaseControl and JsonItemVMBase for new property Description
File size: 3.3 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        Description = value.ItemDescription,
22        Value = ((IntValue)value).Value,
23        Range = new int[] { int.MinValue, int.MaxValue }
24      };
25  }
26
27  public class DoubleValueConverter : BaseConverter {
28    public override int Priority => 1;
29    public override Type ConvertableType => typeof(DoubleValue);
30
31    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) =>
32      ((DoubleValue)item).Value = ((DoubleJsonItem)data).Value;
33
34    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
35      new DoubleJsonItem() {
36        Name = "[OverridableParamName]",
37        Description = value.ItemDescription,
38        Value = ((DoubleValue)value).Value,
39        Range = new double[] { double.MinValue, double.MaxValue }
40      };
41  }
42
43  public class PercentValueConverter : BaseConverter {
44    public override int Priority => 2;
45    public override Type ConvertableType => typeof(PercentValue);
46
47    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) =>
48      ((PercentValue)item).Value = ((DoubleJsonItem)data).Value;
49
50    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
51      new DoubleJsonItem() {
52        Name = "[OverridableParamName]",
53        Description = value.ItemDescription,
54        Value = ((PercentValue)value).Value,
55        Range = new double[] { double.MinValue, double.MaxValue }
56      };
57  }
58
59  public class BoolValueConverter : BaseConverter {
60    public override int Priority => 1;
61    public override Type ConvertableType => typeof(BoolValue);
62
63    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) =>
64      ((BoolValue)item).Value = ((BoolJsonItem)data).Value;
65
66    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
67      new BoolJsonItem() {
68        Name = "[OverridableParamName]",
69        Description = value.ItemDescription,
70        Value = ((BoolValue)value).Value,
71        Range = new bool[] { false, true }
72      };
73  }
74
75  public class DateTimeValueConverter : BaseConverter {
76    public override int Priority => 1;
77    public override Type ConvertableType => typeof(DateTimeValue);
78
79    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) =>
80      ((DateTimeValue)item).Value = ((DateTimeJsonItem)data).Value;
81
82    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
83      new DateTimeJsonItem() {
84        Name = "[OverridableParamName]",
85        Description = value.ItemDescription,
86        Value = ((DateTimeValue)value).Value,
87        Range = new DateTime[] { DateTime.MinValue, DateTime.MaxValue }
88      };
89  }
90}
Note: See TracBrowser for help on using the repository browser.