Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
09/08/21 15:53:37 (3 years ago)
Author:
dpiringe
Message:

#3026

  • added a new protected virtual property in CheckedItemListView to be able to change the text of the groupBox
  • removed event handling in ResultCollectionPostProcessorControl and overwrote the new property GroupBoxText
  • added a new section in ExportJsonDialog for result collection processors
  • renamed IResultCollectionPostProcessor to IResultCollectionProcessor + all connected classes
  • added/changed the workflow of ResultCollectionProcessors in JsonTemplateGenerator and JsonTemplateInstantiator
    • also changed Constants.cs -> added a new section in template ResultCollectionProcessorItems
File:
1 edited

Legend:

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

    r18046 r18050  
    1919    /// <param name="optimizer">the optimizer object to serialize</param>
    2020    /// <param name="rootItem">Root JsonItem for serialization, considers only active JsonItems for serialization</param>
    21     public static void GenerateTemplate(string templatePath, IOptimizer optimizer, IJsonItem rootItem, IEnumerable<IResultCollectionPostProcessor> postProcessors) {
     21    public static void GenerateTemplate(string templatePath, IOptimizer optimizer, IJsonItem rootItem, IEnumerable<IResultCollectionProcessor> resultCollectionProcessors) {
    2222      // clear all runs
     23      if (optimizer.ExecutionState == ExecutionState.Paused)
     24        optimizer.Stop();
    2325      optimizer.Runs.Clear();
    2426
     
    3234      JArray parameterItems = new JArray();
    3335      JArray resultItems = new JArray();
    34       JArray postProcessorItems = new JArray();
    35       // postProcessors.Select(x => new JObject().Add("Name", JToken.Parse(x.GetType().Name))
    36       foreach (var proc in postProcessors) {
    37         var tmp = new JObject();
    38         tmp.Add("Name", proc.GetType().Name);
    39         postProcessorItems.Add(tmp);
    40       }
    41 
    42       IList<IJsonItem> jsonItems = new List<IJsonItem>();
    43      
     36      JArray resultCollectionProcessorItems = new JArray();
    4437      string templateName = Path.GetFileName(templatePath);
    4538      string templateDirectory = Path.GetDirectoryName(templatePath);
    46 
    4739      #endregion
    4840
    49       if(optimizer.ExecutionState == ExecutionState.Paused)
    50         optimizer.Stop();
    51 
    52       // recursively filter items with values/ranges/actualNames
    53       PopulateJsonItems(rootItem, jsonItems);
     41      // filter items with values/ranges/actualNames
     42      var jsonItems = rootItem.Where(x => x.Active && !(x is EmptyJsonItem) && !(x is UnsupportedJsonItem));
    5443
    5544      #region Serialize HL File
     
    7160      #endregion
    7261
     62      #region ResultCollectionProcessor Serialization
     63      foreach (var proc in resultCollectionProcessors) {
     64        JArray rcpParameterItems = new JArray();
     65        var guid = StorableTypeAttribute.GetStorableTypeAttribute(proc.GetType()).Guid.ToString();
     66        var item = JsonItemConverter.Extract(proc);
     67
     68        var rcpItems = item
     69          .Where(x => !(x is EmptyJsonItem) && !(x is UnsupportedJsonItem))
     70          .Select(x => x.GenerateJObject());
     71
     72        foreach (var i in rcpItems)
     73          rcpParameterItems.Add(i);
     74
     75        JObject processorObj = new JObject();
     76        processorObj.Add(nameof(IJsonItem.Name), item.Name);
     77        processorObj.Add("GUID", guid);
     78        processorObj.Add(Constants.Parameters, rcpParameterItems);
     79        resultCollectionProcessorItems.Add(processorObj);
     80      }
     81      #endregion
     82
    7383      #region Set Template Data
    7484      template[Constants.Metadata][Constants.TemplateName] = templateName;
     
    7686      template[Constants.Parameters] = parameterItems;
    7787      template[Constants.Results] = resultItems;
    78       template["PostProcessors"] = postProcessorItems;
     88      template[Constants.ResultCollectionProcessorItems] = resultCollectionProcessorItems;
    7989      #endregion
    8090
     
    8393      #endregion
    8494    }
    85 
    86     #region Helper   
    87     private static void PopulateJsonItems(IJsonItem item, IList<IJsonItem> jsonItems) {
    88       foreach(var x in item) { // TODO: dieses konstrukt notwendig?
    89         if (x.Active && !(x is EmptyJsonItem) && !(x is UnsupportedJsonItem)) {
    90           jsonItems.Add(x);
    91         }
    92       }
    93     }
    94     #endregion
    9595  }
    9696}
Note: See TracChangeset for help on using the changeset viewer.