Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/17/20 12:33:35 (4 years ago)
Author:
dpiringe
Message:

#3026:

  • refactored JsonTemplateInstantiator -> now returns a InstantiatorResult which contains the optimizer and an IEnumerable of IResultJsonItem
  • code cleanup in JCGenerator
  • relocated the serialization of json items into IJsonItem with method GenerateJObject (virtual base implementation in JsonItem)
    • this allows custom serialization for json items (example: ValueLookupJsonItem)
    • items of interface IIntervalRestrictedJsonItem have a custom implementation of GenerateJObject -> hides Minimum and Maximum if the values are the physically min/max of their type
  • code cleanup in BaseConverter
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Models/DoubleJsonItems.cs

    r17473 r17477  
    44using System.Text;
    55using System.Threading.Tasks;
     6using Newtonsoft.Json.Linq;
    67
    78namespace HeuristicLab.JsonInterface {
    8   public class DoubleJsonItem : IntervalRestrictedValueJsonItem<double> { }
    9   public class DoubleArrayJsonItem : IntervalRestrictedArrayJsonItem<double> { }
    10   public class DoubleRangeJsonItem : RangedJsonItem<double> { }
     9  public class DoubleJsonItem : IntervalRestrictedValueJsonItem<double> {
     10    public override JObject GenerateJObject() {
     11      var obj = base.GenerateJObject();
    1112
     13      if (Minimum.CompareTo(double.MinValue) == 0)
     14        obj.Property("Minimum").Remove();
     15
     16      if (Maximum.CompareTo(double.MaxValue) == 0)
     17        obj.Property("Maximum").Remove();
     18
     19      return obj;
     20    }
     21
     22    public override void SetJObject(JObject jObject) {
     23      Minimum = double.MinValue;
     24      Maximum = double.MaxValue;
     25      base.SetJObject(jObject);
     26    }
     27  }
     28  public class DoubleArrayJsonItem : IntervalRestrictedArrayJsonItem<double> {
     29    public override JObject GenerateJObject() {
     30      var obj = base.GenerateJObject();
     31
     32      if (Minimum.CompareTo(double.MinValue) == 0)
     33        obj.Property("Minimum").Remove();
     34
     35      if (Maximum.CompareTo(double.MaxValue) == 0)
     36        obj.Property("Maximum").Remove();
     37
     38      return obj;
     39    }
     40
     41    public override void SetJObject(JObject jObject) {
     42      Minimum = double.MinValue;
     43      Maximum = double.MaxValue;
     44      base.SetJObject(jObject);
     45    }
     46  }
     47  public class DoubleRangeJsonItem : RangedJsonItem<double> {
     48    public override JObject GenerateJObject() {
     49      var obj = base.GenerateJObject();
     50
     51      if (Minimum.CompareTo(double.MinValue) == 0)
     52        obj.Property("Minimum").Remove();
     53
     54      if (Maximum.CompareTo(double.MaxValue) == 0)
     55        obj.Property("Maximum").Remove();
     56
     57      return obj;
     58    }
     59
     60    public override void SetJObject(JObject jObject) {
     61      Minimum = double.MinValue;
     62      Maximum = double.MaxValue;
     63      base.SetJObject(jObject);
     64    }
     65  }
    1266  public class DoubleMatrixJsonItem : IntervalRestrictedMatrixJsonItem<double> {
    13     /*
    14     protected override bool IsInRange() {
    15       for (int c = 0; c < Value.Length; ++c) {
    16         for (int r = 0; r < Value[c].Length; ++r) {
    17           if (Value[c][r] < Range.First() && Range.Last() < Value[c][r])
    18             return false;
    19         }
    20       }
    21       return true;
     67    public override JObject GenerateJObject() {
     68      var obj = base.GenerateJObject();
     69
     70      if (Minimum.CompareTo(double.MinValue) == 0)
     71        obj.Property("Minimum").Remove();
     72
     73      if (Maximum.CompareTo(double.MaxValue) == 0)
     74        obj.Property("Maximum").Remove();
     75
     76      return obj;
    2277    }
    23     */
     78
     79    public override void SetJObject(JObject jObject) {
     80      Minimum = double.MinValue;
     81      Maximum = double.MaxValue;
     82      base.SetJObject(jObject);
     83    }
    2484  }
    2585}
Note: See TracChangeset for help on using the changeset viewer.