Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
09/26/19 17:43:44 (5 years ago)
Author:
dpiringe
Message:

#3026

  • deleted Util.cs
  • BaseTransformer merges now the component with its reference (if a reference exists) -> easier handling for transformers with parameterizedItems
  • MultiCheckedOperatorTransformer now sets the type name as default value
  • added a type list at the end of the template file -> is needed to instantiate objects
  • changed JCGenerator and JCInstantiator to test a format where FreeParameters and StaticParameters are saved as single Parameter array
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/3026_IntegrationIntoSymSpace/HeuristicLab.Manufacture/JCGenerator.cs

    r17271 r17275  
    1919    private Stack<Formatting> formattings = new Stack<Formatting>();
    2020    private int lvl = 0;
     21    private bool isRangeArray = false;
    2122    public override void WriteStartArray() {
    2223      base.WriteStartArray();
     24      /*
    2325      if(lvl > ArrayFlatterLvl) {
    2426        formattings.Push(base.Formatting);
     
    2628      }
    2729      lvl++;
     30      */
     31      if(isRangeArray) base.Formatting = Formatting.None;
    2832    }
    2933
    3034    public override void WriteEndArray() {
    3135      base.WriteEndArray();
     36      /*
    3237      lvl--;
    3338      if (lvl > ArrayFlatterLvl)
    3439        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";
    3550    }
    3651
     
    5469        'Problem':''
    5570      },
    56       'Objects': []
     71      'Objects': [],
     72      'Types': {}
    5773    }");
    5874
    59    
    6075    private Dictionary<string, string> TypeList = new Dictionary<string, string>();
    6176   
     
    6984     
    7085      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))
    78113          jsonItems.Add(token);
     114
     115        if(!token["Parameters"].HasValues) {
     116          token.Property("Parameters")?.Remove();
     117        }
    79118      }
    80119
     
    82121      template["Metadata"]["Problem"] = problem.Name;
    83122      template["Objects"] = jsonItems;
     123      template["Types"] = JObject.FromObject(TypeList);
    84124
    85125      return CustomWriter.Serialize(template);
     
    121161    }
    122162
     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
    123172    private JsonSerializer Settings() => new JsonSerializer() {
    124173      TypeNameHandling = TypeNameHandling.None,
Note: See TracChangeset for help on using the changeset viewer.