Changeset 17394 for branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueRangeConverter.cs
- Timestamp:
- 01/07/20 16:25:39 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueRangeConverter.cs
r17379 r17394 11 11 namespace HeuristicLab.JsonInterface { 12 12 13 public class IntRangeConverter : ValueRangeConverter<IntRange, IntValue, int> { } 14 public class DoubleRangeConverter : ValueRangeConverter<DoubleRange, DoubleValue, double> {} 13 public class IntRangeConverter : ValueRangeConverter<IntRange, IntValue, int> { 14 public override int Priority => 1; 15 public override Type ConvertableType => typeof(IntRange); 16 } 17 public class DoubleRangeConverter : ValueRangeConverter<DoubleRange, DoubleValue, double> { 18 public override int Priority => 1; 19 public override Type ConvertableType => typeof(DoubleRange); 20 } 15 21 16 public class ValueRangeConverter<RangeType, T, TType> : BaseConverter22 public abstract class ValueRangeConverter<RangeType, T, TType> : BaseConverter 17 23 where RangeType : StringConvertibleValueTuple<T, T> 18 24 where T : ValueTypeValue<TType>, IDeepCloneable, IStringConvertibleValue … … 21 27 private const BindingFlags Flags = BindingFlags.NonPublic | BindingFlags.Instance; 22 28 23 public override JsonItem ExtractData(IItem value) {29 public override void Populate(IItem value, JsonItem item, IJsonItemConverter root) { 24 30 var field = value.GetType().GetField("values", Flags); 25 31 Tuple<T,T> tuple = (Tuple<T,T>)field.GetValue(value); 26 27 return new JsonItem() { 28 Name = "[OverridableParamName]", 29 Value = new object[] { tuple.Item1.Value, tuple.Item2.Value }, 30 Range = new object[] { GetMinValue(tuple.Item1.Value.GetType()), 31 GetMaxValue(tuple.Item2.Value.GetType()) } 32 }; 32 item.Name = "[OverridableParamName]"; 33 item.Value = new object[] { tuple.Item1.Value, tuple.Item2.Value }; 34 item.Range = new object[] { GetMinValue(tuple.Item1.Value.GetType()), GetMaxValue(tuple.Item2.Value.GetType()) }; 33 35 } 34 36 35 public override void InjectData(IItem item, JsonItem data ) {37 public override void InjectData(IItem item, JsonItem data, IJsonItemConverter root) { 36 38 object[] arr = (object[])data.Value; 37 39 Tuple<T,T> tuple = new Tuple<T,T>(Instantiate<T>(arr[0]), Instantiate<T>(arr[1]));
Note: See TracChangeset
for help on using the changeset viewer.