Free cookie consent management tool by TermsFeed Policy Generator

source: branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueRangeConverter.cs

Last change on this file was 18077, checked in by dpiringe, 2 years ago

#3026

  • added the dockerhub readme file
  • fixed a bug which caused changed values (changed by events) to be overwritten with wrong values
File size: 1.9 KB
Line 
1using System;
2using HeuristicLab.Core;
3using HeuristicLab.Data;
4
5namespace HeuristicLab.JsonInterface {
6
7  public class IntRangeConverter : BaseConverter {
8    public override int Priority => 1;
9
10    public override bool CanConvertType(Type t) =>
11      typeof(IntRange).IsAssignableFrom(t);
12
13    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) {
14      IntRange range = item as IntRange;
15      IntRangeJsonItem cdata = data as IntRangeJsonItem;
16      if(data.Active) {
17        range.Start = cdata.MinValue;
18        range.End = cdata.MaxValue;
19      }
20    }
21
22    public override IJsonItem Extract(IItem value, IJsonItemConverter root) {
23      IntRange range = value as IntRange;
24      return new IntRangeJsonItem() {
25        Name = value.ItemName,
26        Description = value.ItemDescription,
27        MinValue = range.Start,
28        MaxValue = range.End,
29        Minimum = int.MinValue,
30        Maximum = int.MaxValue
31      };
32    }
33  }
34
35  public class DoubleRangeConverter : BaseConverter {
36    public override int Priority => 1;
37
38    public override bool CanConvertType(Type t) =>
39      typeof(DoubleRange).IsAssignableFrom(t);
40
41    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) {
42      DoubleRange range = item as DoubleRange;
43      DoubleRangeJsonItem cdata = data as DoubleRangeJsonItem;
44      if (data.Active) {
45        range.Start = cdata.MinValue;
46        range.End = cdata.MaxValue;
47      }
48    }
49
50    public override IJsonItem Extract(IItem value, IJsonItemConverter root) {
51      DoubleRange range = value as DoubleRange;
52      return new DoubleRangeJsonItem() {
53        Name = value.ItemName,
54        Description = value.ItemDescription,
55        MinValue = range.Start,
56        MaxValue = range.End,
57        Minimum = double.MinValue,
58        Maximum = double.MaxValue
59      };
60    }
61  }
62}
Note: See TracBrowser for help on using the repository browser.