Changeset 18050 for branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/JsonTemplateGenerator.cs
- Timestamp:
- 09/08/21 15:53:37 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/JsonTemplateGenerator.cs
r18046 r18050 19 19 /// <param name="optimizer">the optimizer object to serialize</param> 20 20 /// <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<IResultCollectionP ostProcessor> postProcessors) {21 public static void GenerateTemplate(string templatePath, IOptimizer optimizer, IJsonItem rootItem, IEnumerable<IResultCollectionProcessor> resultCollectionProcessors) { 22 22 // clear all runs 23 if (optimizer.ExecutionState == ExecutionState.Paused) 24 optimizer.Stop(); 23 25 optimizer.Runs.Clear(); 24 26 … … 32 34 JArray parameterItems = new JArray(); 33 35 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(); 44 37 string templateName = Path.GetFileName(templatePath); 45 38 string templateDirectory = Path.GetDirectoryName(templatePath); 46 47 39 #endregion 48 40 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)); 54 43 55 44 #region Serialize HL File … … 71 60 #endregion 72 61 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 73 83 #region Set Template Data 74 84 template[Constants.Metadata][Constants.TemplateName] = templateName; … … 76 86 template[Constants.Parameters] = parameterItems; 77 87 template[Constants.Results] = resultItems; 78 template[ "PostProcessors"] = postProcessorItems;88 template[Constants.ResultCollectionProcessorItems] = resultCollectionProcessorItems; 79 89 #endregion 80 90 … … 83 93 #endregion 84 94 } 85 86 #region Helper87 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 #endregion95 95 } 96 96 }
Note: See TracChangeset
for help on using the changeset viewer.