Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/10/20 17:17:37 (5 years ago)
Author:
dpiringe
Message:

#3026:

  • refactored inheritance structure of json items, now the default JsonItem is an abstract class without properties Value and Range -> splitted up into new interfaces
  • updated view models for new json item structure
  • updated SingleLineArrayJsonWriter
Location:
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ConstrainedValueParameterConverter.cs

    r17433 r17473  
    1919          parameter.ActualValue = x;
    2020
    21       if (parameter.ActualValue is IParameterizedItem && cdata.Children != null) {
     21      if (parameter.ActualValue != null && /*parameter.ActualValue is IParameterizedItem &&*/ cdata.Children != null) {
    2222        foreach(var param in cdata.Children) {
    2323          if(param.Name == parameter.ActualValue.ItemName)
     
    3434        Description = value.ItemDescription,
    3535        Value = parameter.ActualValue?.ToString(),
    36         Range = GetValidValues(parameter).Select(x => x.ToString())
     36        ConcreteRestrictedItems = GetValidValues(parameter).Select(x => x.ToString())
    3737      };
    3838      item.AddChildren(GetParameterizedChilds(parameter));
  • branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/EnumTypeConverter.cs

    r17433 r17473  
    2424        Description = value.ItemDescription,
    2525        Value = Enum.GetName(enumType, val),
    26         Range = Enum.GetNames(enumType)
     26        ConcreteRestrictedItems = Enum.GetNames(enumType)
    2727    };
    2828    }
  • branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/MultiCheckedOperatorConverter.cs

    r17439 r17473  
    1919        IJsonItem childItem = GetChildItem(op.Name, data);
    2020        if(childItem != null) {
    21           if(childItem.Value is bool b) {
    22             val.Operators.SetItemCheckedState(op, b);
     21          if(childItem is BoolJsonItem boolJsonItem) {
     22            val.Operators.SetItemCheckedState(op, boolJsonItem.Value);
    2323          }
    2424          root.Inject((IItem)op, childItem, root);
     
    3434          Name = op.Name,
    3535          Description = op.Description,
    36           Value = val.Operators.ItemChecked(op),
    37           Range = new bool[] { false, true }
     36          Value = val.Operators.ItemChecked(op)
    3837        };
    3938        IJsonItem c = root.Extract((IItem)op, root);
     
    4948    private bool GetOperatorState(string name, IJsonItem data) {
    5049      foreach(var op in data.Children) {
    51         if (op.Name == name && op.Value is bool) return (bool)op.Value;
     50        if (op.Name == name && op is BoolJsonItem b) return b.Value;
    5251      }
    5352      return false;
     
    5554
    5655    private IJsonItem GetChildItem(string name, IJsonItem parent) {
     56      if (parent.Children == null) return null;
    5757      foreach(var c in parent.Children) {
    5858        if (c.Name == name) return c;
  • branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ParameterizedItemConverter.cs

    r17433 r17473  
    2424      var parameterizedItem = value as IParameterizedItem;
    2525
    26       IJsonItem item = new JsonItem() {
     26      IJsonItem item = new EmptyJsonItem() {
    2727        Name = value.ItemName,
    2828        Description = value.ItemDescription
  • branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/RegressionProblemDataConverter.cs

    r17471 r17473  
    3131      var dataInfo = dataset.GetType().GetField("variableValues", flags);
    3232      dataInfo.SetValue(dataset, dictTmp);
    33       val.TargetVariable = (string)data.Children[3].Value;
    34       val.TrainingPartition.Start = ((IntRangeJsonItem)data.Children[2]).Value.First();
    35       val.TrainingPartition.End = ((IntRangeJsonItem)data.Children[2]).Value.Last();
    36       val.TestPartition.Start = ((IntRangeJsonItem)data.Children[1]).Value.First();
    37       val.TestPartition.End = ((IntRangeJsonItem)data.Children[1]).Value.Last();
     33      val.TargetVariable = ((StringJsonItem)data.Children[3]).Value;
     34      val.TrainingPartition.Start = ((IntRangeJsonItem)data.Children[2]).MinValue;
     35      val.TrainingPartition.End = ((IntRangeJsonItem)data.Children[2]).MaxValue;
     36      val.TestPartition.Start = ((IntRangeJsonItem)data.Children[1]).MinValue;
     37      val.TestPartition.End = ((IntRangeJsonItem)data.Children[1]).MaxValue;
    3838    }
    3939
    4040    public override IJsonItem Extract(IItem value, IJsonItemConverter root) {
    41       IJsonItem item = new JsonItem() {
     41      IJsonItem item = new EmptyJsonItem() {
    4242        Name = value.ItemName,
    4343        Description = value.ItemDescription
     
    7171          Name = "Dataset",
    7272          Value = mat,
    73           RowNames = rowNames
     73          RowNames = rowNames,
     74          Minimum = double.MinValue,
     75          Maximum = double.MaxValue
    7476        });
    7577      }
     
    8082      item.AddChildren(new IntRangeJsonItem() {
    8183        Name = "TestPartition",
    82         Value = new int[] { testPartition.Start, testPartition.End },
    83         Range = new int[] { 0, Math.Max(testPartition.End, trainingPartition.End) }
     84        MinValue = testPartition.Start,
     85        MaxValue = testPartition.End,
     86        Minimum = 0,
     87        Maximum = Math.Max(testPartition.End, trainingPartition.End)
    8488      });
    8589
     
    8791      item.AddChildren(new IntRangeJsonItem() {
    8892        Name = "TrainingPartition",
    89         Value = new int[] { trainingPartition.Start, trainingPartition.End },
    90         Range = new int[] { 0, Math.Max(testPartition.End, trainingPartition.End)}
     93        MinValue = trainingPartition.Start,
     94        MaxValue = trainingPartition.End,
     95        Minimum = 0,
     96        Maximum = Math.Max(testPartition.End, trainingPartition.End)
    9197      });
    9298
    9399      IEnumerable<StringValue> variables = (IEnumerable<StringValue>)val.InputVariables;
    94       item.AddChildren(new JsonItem() {
     100      item.AddChildren(new StringJsonItem() {
    95101        Name = "TargetVariable",
    96         Value = (object)targetVariable,
    97         Range = variables.Select(x => x.Value)
     102        Value = (string)targetVariable,
     103        ConcreteRestrictedItems = variables.Select(x => x.Value)
    98104      });
    99105
  • branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ResultParameterConverter.cs

    r17471 r17473  
    1717      return new ResultJsonItem() {
    1818        Name = res.ActualName,
    19         Value = res.ActualName,
    2019        Description = res.Description
    2120      };
     
    2423    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) {
    2524      IResultParameter res = item as IResultParameter;
    26       res.ActualName = (string)data.Value;
     25      res.ActualName = data.Name;
    2726    }
    2827  }
  • branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/StringValueConverter.cs

    r17443 r17473  
    1717    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
    1818      new StringJsonItem() {
    19         Name = "[OverridableParamName]",
     19        //Name = "[OverridableParamName]",
     20        Name = value.ItemName,
    2021        Description = value.ItemDescription,
    2122        Value = ((StringValue)value).Value
  • branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueLookupParameterConverter.cs

    r17471 r17473  
    1313    public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) {
    1414      IValueLookupParameter param = item as IValueLookupParameter;
    15       param.ActualName = CastValue<string>(((IValueLookupJsonItem)data).ActualName);
     15      IValueLookupJsonItem lookupItem = data as IValueLookupJsonItem;
     16      param.ActualName = lookupItem.ActualName;
    1617      if (param.Value != null)
    17         root.Inject(param.Value, data, root);
     18        root.Inject(param.Value, lookupItem.JsonItemReference, root);
    1819    }
    1920
     
    2526      if (param.Value != null) {
    2627        IJsonItem tmp = root.Extract(param.Value, root);
    27         item.Value = tmp.Value;
    28         item.Range = tmp.Range;
    29         item.Name = tmp.Name;
    30         item.Description = tmp.Description;
    3128        item.AddChildren(tmp.Children);
    32         item.Active = tmp.Active;
    3329        item.JsonItemReference = tmp;
    34       } else {
    35         var min = GetMinValue(param.DataType);
    36         var max = GetMaxValue(param.DataType);
    37         if (min != null && max != null)
    38           item.Range = new object[] { min, max };
    39         else
    40           item.Range = null;
    4130      }
    4231      item.Name = param.Name;
  • branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueParameterConverter.cs

    r17439 r17473  
    1414      IParameter parameter = value as IParameter;
    1515
    16       if (parameter.ActualValue == null && data.Value != null)
     16      if (parameter.ActualValue == null)
    1717        parameter.ActualValue = Instantiate(parameter.DataType);
    1818
     
    2121            root.Inject(parameter.ActualValue, data, root);
    2222          else
    23             root.Inject(parameter.ActualValue, data.Children?.First(), root);
     23            root.Inject(parameter.ActualValue, /*data.Children?.First()*/ data, root);
    2424         
    2525      }
     
    2929      IParameter parameter = value as IParameter;
    3030
    31       IJsonItem item = new JsonItem() {
     31      IJsonItem item = new EmptyJsonItem() {
    3232        Name = parameter.Name,
    3333        Description = parameter.Description
     
    3737        IJsonItem tmp = root.Extract(parameter.ActualValue, root);
    3838        if (!(tmp is UnsupportedJsonItem)) {
     39          tmp.Name = parameter.Name;
     40          tmp.Description = parameter.Description;
     41          item = tmp;
     42          /*
    3943          if (tmp.Name == "[OverridableParamName]") {
    4044            tmp.Name = parameter.Name;
     
    4448          } else
    4549            item.AddChildren(tmp);
     50            */
    4651        }
    4752      }
  • branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueRangeConverter.cs

    r17451 r17473  
    1818      IntRange range = item as IntRange;
    1919      IntRangeJsonItem cdata = data as IntRangeJsonItem;
    20       range.Start = cdata.Value[0];
    21       range.End = cdata.Value[1];
     20      range.Start = cdata.MinValue;
     21      range.End = cdata.MaxValue;
    2222    }
    2323
     
    2525      IntRange range = value as IntRange;
    2626      return new IntRangeJsonItem() {
    27         Name = "[OverridableParamName]",
     27        //Name = "[OverridableParamName]",
     28        Name = value.ItemName,
    2829        Description = value.ItemDescription,
    29         Value = new int[] { range.Start, range.End },
    30         Range = new int[] { int.MinValue, int.MaxValue }
     30        MinValue = range.Start,
     31        MaxValue = range.End,
     32        Minimum = int.MinValue,
     33        Maximum = int.MaxValue
    3134      };
    3235    }
     
    4043      DoubleRange range = item as DoubleRange;
    4144      DoubleRangeJsonItem cdata = data as DoubleRangeJsonItem;
    42       range.Start = cdata.Value[0];
    43       range.End = cdata.Value[1];
     45      range.Start = cdata.MinValue;
     46      range.End = cdata.MaxValue;
    4447    }
    4548
     
    4750      DoubleRange range = value as DoubleRange;
    4851      return new DoubleRangeJsonItem() {
    49         Name = "[OverridableParamName]",
     52        //Name = "[OverridableParamName]",
     53        Name = value.ItemName,
    5054        Description = value.ItemDescription,
    51         Value = new double[] { range.Start, range.End },
    52         Range = new double[] { double.MinValue, double.MaxValue }
     55        MinValue = range.Start,
     56        MaxValue = range.End,
     57        Minimum = double.MinValue,
     58        Maximum = double.MaxValue
    5359      };
    5460    }
  • branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueTypeArrayConverter.cs

    r17451 r17473  
    3030        Description = value.ItemDescription,
    3131        Value = ((IntArray)value).CloneAsArray(),
    32         Range = new int[] { int.MinValue, int.MaxValue }
     32        Minimum = int.MinValue,
     33        Maximum = int.MaxValue
    3334      };
    3435  }
     
    5657        Description = value.ItemDescription,
    5758        Value = ((DoubleArray)value).CloneAsArray(),
    58         Range = new double[] { double.MinValue, double.MaxValue }
     59        Minimum = double.MinValue,
     60        Maximum = double.MaxValue
    5961      };
    6062  }
     
    8082        Description = value.ItemDescription,
    8183        Value = ((PercentArray)value).CloneAsArray(),
    82         Range = new double[] { 0.0d, 1.0d }
     84        Minimum = 0.0d,
     85        Maximum = 1.0d
    8386      };
    8487  }
     
    101104    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
    102105      new BoolArrayJsonItem() {
    103         Name = "[OverridableParamName]",
     106        //Name = "[OverridableParamName]",
     107        Name = value.ItemName,
    104108        Description = value.ItemDescription,
    105         Value = ((BoolArray)value).CloneAsArray(),
    106         Range = new bool[] { false, true }
     109        Value = ((BoolArray)value).CloneAsArray()
    107110      };
    108111  }
  • branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueTypeMatrixConverter.cs

    r17471 r17473  
    2323        Description = value.ItemDescription,
    2424        Value = Transform((IntMatrix)value),
    25         Range = new int[] { int.MinValue, int.MaxValue }
     25        Minimum = int.MinValue,
     26        Maximum = int.MaxValue
    2627      };
    2728  }
     
    4243        Description = value.ItemDescription,
    4344        Value = Transform((DoubleMatrix)value),
    44         Range = new double[] { double.MinValue, double.MaxValue },
     45        Minimum = double.MinValue,
     46        Maximum = double.MaxValue,
    4547        RowNames = ((DoubleMatrix)value).RowNames,
    4648        ColumnNames = ((DoubleMatrix)value).ColumnNames
     
    6365        Description = value.ItemDescription,
    6466        Value = Transform((PercentMatrix)value),
    65         Range = new double[] { 0.0d, 1.0d }
     67        Minimum = 0.0d,
     68        Maximum = 1.0d
    6669      };
    6770  }
     
    7982    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
    8083      new BoolMatrixJsonItem() {
    81         Name = "[OverridableParamName]",
     84        //Name = "[OverridableParamName]",
     85        Name = value.ItemName,
    8286        Description = value.ItemDescription,
    83         Value = Transform((BoolMatrix)value),
    84         Range = new bool[] { false, true }
     87        Value = Transform((BoolMatrix)value)
    8588      };
    8689  }
  • branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueTypeValueConverter.cs

    r17433 r17473  
    1818    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
    1919      new IntJsonItem() {
    20         Name = "[OverridableParamName]",
     20        //Name = "[OverridableParamName]",
     21        Name = value.ItemName,
    2122        Description = value.ItemDescription,
    2223        Value = ((IntValue)value).Value,
    23         Range = new int[] { int.MinValue, int.MaxValue }
     24        Minimum = int.MinValue,
     25        Maximum = int.MaxValue
    2426      };
    2527  }
     
    3436    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
    3537      new DoubleJsonItem() {
    36         Name = "[OverridableParamName]",
     38        //Name = "[OverridableParamName]",
     39        Name = value.ItemName,
    3740        Description = value.ItemDescription,
    3841        Value = ((DoubleValue)value).Value,
    39         Range = new double[] { double.MinValue, double.MaxValue }
     42        Minimum = double.MinValue,
     43        Maximum = double.MaxValue
    4044      };
    4145  }
     
    5054    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
    5155      new DoubleJsonItem() {
    52         Name = "[OverridableParamName]",
     56        //Name = "[OverridableParamName]",
     57        Name = value.ItemName,
    5358        Description = value.ItemDescription,
    5459        Value = ((PercentValue)value).Value,
    55         Range = new double[] { double.MinValue, double.MaxValue }
     60        Minimum = double.MinValue,
     61        Maximum = double.MaxValue
    5662      };
    5763  }
     
    6672    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
    6773      new BoolJsonItem() {
    68         Name = "[OverridableParamName]",
     74        //Name = "[OverridableParamName]",
     75        Name = value.ItemName,
    6976        Description = value.ItemDescription,
    70         Value = ((BoolValue)value).Value,
    71         Range = new bool[] { false, true }
     77        Value = ((BoolValue)value).Value
    7278      };
    7379  }
     
    8288    public override IJsonItem Extract(IItem value, IJsonItemConverter root) =>
    8389      new DateTimeJsonItem() {
    84         Name = "[OverridableParamName]",
     90        //Name = "[OverridableParamName]",
     91        Name = value.ItemName,
    8592        Description = value.ItemDescription,
    8693        Value = ((DateTimeValue)value).Value,
    87         Range = new DateTime[] { DateTime.MinValue, DateTime.MaxValue }
     94        Minimum = DateTime.MinValue,
     95        Maximum = DateTime.MaxValue
    8896      };
    8997  }
Note: See TracChangeset for help on using the changeset viewer.