Changeset 17410 for branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueTypeValueConverter.cs
- Timestamp:
- 01/28/20 14:53:45 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueTypeValueConverter.cs
r17407 r17410 9 9 namespace HeuristicLab.JsonInterface { 10 10 11 public class IntValueConverter : ValueTypeValueConverter<IntValue, int>{11 public class IntValueConverter : BaseConverter { 12 12 public override int Priority => 1; 13 13 public override Type ConvertableType => typeof(IntValue); 14 15 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) => 16 ((IntValue)item).Value = ((IntJsonItem)data).Value; 17 18 public override IJsonItem Extract(IItem value, IJsonItemConverter root) => 19 new IntJsonItem() { 20 Name = "[OverridableParamName]", 21 Value = ((IntValue)value).Value, 22 Range = new int[] { int.MinValue, int.MaxValue } 23 }; 14 24 } 15 25 16 public class DoubleValueConverter : ValueTypeValueConverter<DoubleValue, double>{26 public class DoubleValueConverter : BaseConverter { 17 27 public override int Priority => 1; 18 28 public override Type ConvertableType => typeof(DoubleValue); 29 30 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) => 31 ((DoubleValue)item).Value = ((DoubleJsonItem)data).Value; 32 33 public override IJsonItem Extract(IItem value, IJsonItemConverter root) => 34 new DoubleJsonItem() { 35 Name = "[OverridableParamName]", 36 Value = ((DoubleValue)value).Value, 37 Range = new double[] { double.MinValue, double.MaxValue } 38 }; 19 39 } 20 40 21 public class PercentValueConverter : ValueTypeValueConverter<PercentValue, double>{41 public class PercentValueConverter : BaseConverter { 22 42 public override int Priority => 2; 23 43 public override Type ConvertableType => typeof(PercentValue); 44 45 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) => 46 ((PercentValue)item).Value = ((DoubleJsonItem)data).Value; 47 48 public override IJsonItem Extract(IItem value, IJsonItemConverter root) => 49 new DoubleJsonItem() { 50 Name = "[OverridableParamName]", 51 Value = ((PercentValue)value).Value, 52 Range = new double[] { double.MinValue, double.MaxValue } 53 }; 24 54 } 25 55 26 public class BoolValueConverter : ValueTypeValueConverter<BoolValue, bool>{56 public class BoolValueConverter : BaseConverter { 27 57 public override int Priority => 1; 28 58 public override Type ConvertableType => typeof(BoolValue); 59 60 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) => 61 ((BoolValue)item).Value = ((BoolJsonItem)data).Value; 62 63 public override IJsonItem Extract(IItem value, IJsonItemConverter root) => 64 new BoolJsonItem() { 65 Name = "[OverridableParamName]", 66 Value = ((BoolValue)value).Value, 67 Range = new bool[] { false, true } 68 }; 29 69 } 30 70 31 public class DateTimeValueConverter : ValueTypeValueConverter<DateTimeValue, DateTime>{71 public class DateTimeValueConverter : BaseConverter { 32 72 public override int Priority => 1; 33 73 public override Type ConvertableType => typeof(DateTimeValue); 34 }35 36 public abstract class ValueTypeValueConverter<ValueType, T> : BaseConverter37 where ValueType : ValueTypeValue<T>38 where T : struct {39 74 40 75 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) => 41 (( ValueType)item).Value = CastValue<T>(data.Value);76 ((DateTimeValue)item).Value = ((DateTimeJsonItem)data).Value; 42 77 43 78 public override IJsonItem Extract(IItem value, IJsonItemConverter root) => 44 new JsonItem() {79 new DateTimeJsonItem() { 45 80 Name = "[OverridableParamName]", 46 Value = (( ValueType)value).Value,47 Range = new object[] { GetMinValue(typeof(T)), GetMaxValue(typeof(T))}81 Value = ((DateTimeValue)value).Value, 82 Range = new DateTime[] { DateTime.MinValue, DateTime.MaxValue } 48 83 }; 49 84 }
Note: See TracChangeset
for help on using the changeset viewer.