- Timestamp:
- 09/26/19 17:43:44 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3026_IntegrationIntoSymSpace/HeuristicLab.Manufacture/JCGenerator.cs
r17271 r17275 19 19 private Stack<Formatting> formattings = new Stack<Formatting>(); 20 20 private int lvl = 0; 21 private bool isRangeArray = false; 21 22 public override void WriteStartArray() { 22 23 base.WriteStartArray(); 24 /* 23 25 if(lvl > ArrayFlatterLvl) { 24 26 formattings.Push(base.Formatting); … … 26 28 } 27 29 lvl++; 30 */ 31 if(isRangeArray) base.Formatting = Formatting.None; 28 32 } 29 33 30 34 public override void WriteEndArray() { 31 35 base.WriteEndArray(); 36 /* 32 37 lvl--; 33 38 if (lvl > ArrayFlatterLvl) 34 39 base.Formatting = formattings.Pop(); 40 */ 41 if(isRangeArray) { 42 base.Formatting = Formatting.Indented; 43 isRangeArray = false; 44 } 45 } 46 47 public override void WritePropertyName(string name) { 48 base.WritePropertyName(name); 49 isRangeArray = name == "Range"; 35 50 } 36 51 … … 54 69 'Problem':'' 55 70 }, 56 'Objects': [] 71 'Objects': [], 72 'Types': {} 57 73 }"); 58 74 59 60 75 private Dictionary<string, string> TypeList = new Dictionary<string, string>(); 61 76 … … 69 84 70 85 foreach(var item in items.Distinct()) { 71 JToken token = JObject.FromObject(item, Settings()); 72 token["StaticParameters"] = token["Parameters"]; 73 token["FreeParameters"] = token["Parameters"]; 74 token.Cast<JObject>().Property("Parameters")?.Remove(); 75 RefactorFreeParameters(token, freeParameters); 76 RefactorStaticParameters(token); 77 if(token["StaticParameters"].HasValues || token["FreeParameters"].HasValues) 86 JObject token = JObject.FromObject(item, Settings()); 87 //token["StaticParameters"] = token["Parameters"]; 88 //token["FreeParameters"] = token["Parameters"]; 89 90 foreach (JObject x in token["Parameters"]) { 91 x.Property("Parameters")?.Remove(); 92 x.Property("Type")?.Remove(); 93 } 94 TypeList.Add(item.Name, item.Type); 95 RefactorParameters(token); 96 /* 97 foreach (JObject x in token["StaticParameters"]) { 98 x.Property("Parameters")?.Remove(); 99 x.Property("Type")?.Remove(); 100 } 101 foreach (JObject x in token["FreeParameters"]) { 102 x.Property("Parameters")?.Remove(); 103 x.Property("Type")?.Remove(); 104 } 105 */ 106 //token.Cast<JObject>().Property("Parameters")?.Remove(); 107 token.Property("Default")?.Remove(); 108 token.Property("Type")?.Remove(); 109 110 //RefactorFreeParameters(token, freeParameters); 111 //RefactorStaticParameters(token); 112 if (/*token["StaticParameters"].HasValues || token["FreeParameters"].HasValues ||*/ token["Parameters"].HasValues || (token["Operators"]?.HasValues ?? false)) 78 113 jsonItems.Add(token); 114 115 if(!token["Parameters"].HasValues) { 116 token.Property("Parameters")?.Remove(); 117 } 79 118 } 80 119 … … 82 121 template["Metadata"]["Problem"] = problem.Name; 83 122 template["Objects"] = jsonItems; 123 template["Types"] = JObject.FromObject(TypeList); 84 124 85 125 return CustomWriter.Serialize(template); … … 121 161 } 122 162 163 private void RefactorParameters(JToken token) { 164 IList<JObject> objToRemove = new List<JObject>(); 165 TransformNodes(x => { 166 var p = x.ToObject<Component>(); 167 if (p.Default == null) objToRemove.Add(x); 168 }, token["Parameters"]); 169 foreach (var x in objToRemove) x.Remove(); 170 } 171 123 172 private JsonSerializer Settings() => new JsonSerializer() { 124 173 TypeNameHandling = TypeNameHandling.None,
Note: See TracChangeset
for help on using the changeset viewer.