Free cookie consent management tool by TermsFeed Policy Generator

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

Last change on this file since 18031 was 17843, checked in by dpiringe, 3 years ago

#3026

  • removed property ConvertableType from all converters
  • removed the option to fixate or loosen the path of JsonItems (obsolete)
  • added a abstract formatter SymbolicRegressionSolutionFormatterBase as base formatter for ISymbolicRegressionSolution
  • unified the construction of exporter controls
  • code cleanup
File size: 3.3 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
[17410]13    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) =>
14      ((IntValue)item).Value = ((IntJsonItem)data).Value;
15
16    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
17      new IntJsonItem() {
[17473]18        Name = value.ItemName,
[17433]19        Description = value.ItemDescription,
[17410]20        Value = ((IntValue)value).Value,
[17473]21        Minimum = int.MinValue,
22        Maximum = int.MaxValue
[17410]23      };
[17394]24  }
25
[17410]26  public class DoubleValueConverter : BaseConverter {
[17394]27    public override int Priority => 1;
[17410]28
[17828]29    public override bool CanConvertType(Type t) =>
[17843]30      typeof(DoubleValue).IsAssignableFrom(t);
[17828]31
[17410]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() {
[17473]37        Name = value.ItemName,
[17433]38        Description = value.ItemDescription,
[17410]39        Value = ((DoubleValue)value).Value,
[17473]40        Minimum = double.MinValue,
41        Maximum = double.MaxValue
[17410]42      };
[17394]43  }
44
[17410]45  public class PercentValueConverter : BaseConverter {
[17394]46    public override int Priority => 2;
[17410]47
[17828]48    public override bool CanConvertType(Type t) =>
[17843]49      typeof(PercentValue).IsAssignableFrom(t);
[17828]50
[17410]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() {
[17473]56        Name = value.ItemName,
[17433]57        Description = value.ItemDescription,
[17410]58        Value = ((PercentValue)value).Value,
[17483]59        Minimum = 0.0d,
60        Maximum = 1.0d
[17410]61      };
[17394]62  }
63
[17410]64  public class BoolValueConverter : BaseConverter {
[17394]65    public override int Priority => 1;
[17410]66
[17828]67    public override bool CanConvertType(Type t) =>
[17843]68      typeof(BoolValue).IsAssignableFrom(t);
[17828]69
[17410]70    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) =>
71      ((BoolValue)item).Value = ((BoolJsonItem)data).Value;
72
73    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
74      new BoolJsonItem() {
[17473]75        Name = value.ItemName,
[17433]76        Description = value.ItemDescription,
[17473]77        Value = ((BoolValue)value).Value
[17410]78      };
[17394]79  }
80
[17410]81  public class DateTimeValueConverter : BaseConverter {
[17394]82    public override int Priority => 1;
83
[17828]84    public override bool CanConvertType(Type t) =>
[17843]85      typeof(DateTimeValue).IsAssignableFrom(t);
[17828]86
[17407]87    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) =>
[17410]88      ((DateTimeValue)item).Value = ((DateTimeJsonItem)data).Value;
[17263]89
[17407]90    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
[17410]91      new DateTimeJsonItem() {
[17473]92        Name = value.ItemName,
[17433]93        Description = value.ItemDescription,
[17410]94        Value = ((DateTimeValue)value).Value,
[17473]95        Minimum = DateTime.MinValue,
96        Maximum = DateTime.MaxValue
[17407]97      };
[17263]98  }
99}
Note: See TracBrowser for help on using the repository browser.