[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 |
|
---|
[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 | }
|
---|