Free cookie consent management tool by TermsFeed Policy Generator

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

Last change on this file since 18077 was 18077, checked in by dpiringe, 3 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: 3.5 KB
RevLine 
[17263]1using System;
2using HeuristicLab.Core;
3using HeuristicLab.Data;
4
[17284]5namespace HeuristicLab.JsonInterface {
[17394]6
[17410]7  public class IntValueConverter : BaseConverter {
[17394]8    public override int Priority => 1;
[17410]9
[17828]10    public override bool CanConvertType(Type t) =>
[17843]11      typeof(IntValue).IsAssignableFrom(t);
[17828]12
[18077]13    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) {
14      if(data.Active)
15        ((IntValue)item).Value = ((IntJsonItem)data).Value;
16    }
17     
[17410]18
19    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
20      new IntJsonItem() {
[17473]21        Name = value.ItemName,
[17433]22        Description = value.ItemDescription,
[17410]23        Value = ((IntValue)value).Value,
[17473]24        Minimum = int.MinValue,
25        Maximum = int.MaxValue
[17410]26      };
[17394]27  }
28
[17410]29  public class DoubleValueConverter : BaseConverter {
[17394]30    public override int Priority => 1;
[17410]31
[17828]32    public override bool CanConvertType(Type t) =>
[17843]33      typeof(DoubleValue).IsAssignableFrom(t);
[17828]34
[18077]35    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) {
36      if (data.Active)
37        ((DoubleValue)item).Value = ((DoubleJsonItem)data).Value;
38    }
[17410]39
40    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
41      new DoubleJsonItem() {
[17473]42        Name = value.ItemName,
[17433]43        Description = value.ItemDescription,
[17410]44        Value = ((DoubleValue)value).Value,
[17473]45        Minimum = double.MinValue,
46        Maximum = double.MaxValue
[17410]47      };
[17394]48  }
49
[17410]50  public class PercentValueConverter : BaseConverter {
[17394]51    public override int Priority => 2;
[17410]52
[17828]53    public override bool CanConvertType(Type t) =>
[17843]54      typeof(PercentValue).IsAssignableFrom(t);
[17828]55
[18077]56    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) {
57      if (data.Active)
58        ((PercentValue)item).Value = ((DoubleJsonItem)data).Value;
59    }
[17410]60
61    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
62      new DoubleJsonItem() {
[17473]63        Name = value.ItemName,
[17433]64        Description = value.ItemDescription,
[17410]65        Value = ((PercentValue)value).Value,
[17483]66        Minimum = 0.0d,
67        Maximum = 1.0d
[17410]68      };
[17394]69  }
70
[17410]71  public class BoolValueConverter : BaseConverter {
[17394]72    public override int Priority => 1;
[17410]73
[17828]74    public override bool CanConvertType(Type t) =>
[17843]75      typeof(BoolValue).IsAssignableFrom(t);
[17828]76
[18077]77    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) {
78      if (data.Active)
79        ((BoolValue)item).Value = ((BoolJsonItem)data).Value;
80    }
[17410]81
82    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
83      new BoolJsonItem() {
[17473]84        Name = value.ItemName,
[17433]85        Description = value.ItemDescription,
[17473]86        Value = ((BoolValue)value).Value
[17410]87      };
[17394]88  }
89
[17410]90  public class DateTimeValueConverter : BaseConverter {
[17394]91    public override int Priority => 1;
92
[17828]93    public override bool CanConvertType(Type t) =>
[17843]94      typeof(DateTimeValue).IsAssignableFrom(t);
[17828]95
[18077]96    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) {
97      if (data.Active)
98        ((DateTimeValue)item).Value = ((DateTimeJsonItem)data).Value;
99    }
[17263]100
[17407]101    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
[17410]102      new DateTimeJsonItem() {
[17473]103        Name = value.ItemName,
[17433]104        Description = value.ItemDescription,
[17410]105        Value = ((DateTimeValue)value).Value,
[17473]106        Minimum = DateTime.MinValue,
107        Maximum = DateTime.MaxValue
[17407]108      };
[17263]109  }
110}
Note: See TracBrowser for help on using the repository browser.