[17263] | 1 | using System;
|
---|
| 2 | using HeuristicLab.Core;
|
---|
| 3 | using HeuristicLab.Data;
|
---|
| 4 |
|
---|
[17284] | 5 | namespace 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 | }
|
---|