Example #1
0
        public static GeneratorDeclaration Parse(JObject transformationObject, string transformationName = null)
        {
            // when its an inline decl it gets the name from the property holding the decl object
            transformationName = transformationName ?? transformationObject.GetStringPropertyValue("name");
            var version         = transformationObject.GetStringPropertyValue("version");
            var parametersArray = transformationObject.GetValue("parameters") as JArray ?? new JArray();
            var parameters      = new List <ParameterDeclaration>();

            foreach (JObject parametersObject in parametersArray)
            {
                var parameterDeclaration = ParameterDeclaration.Parse(parametersObject);
                parameters.Add(parameterDeclaration);
            }

            var rulesArray = transformationObject.GetValue("rules") as JArray ?? new JArray();
            var rules      = new List <TransformationRuleDeclaration>();

            foreach (JObject ruleObject in rulesArray)
            {
                var ruleDeclaration = TransformationRuleDeclaration.Parse(ruleObject);
                rules.Add(ruleDeclaration);
            }

            var location = transformationObject.GetStringPropertyValue("location");

            var transformation = new GeneratorDeclaration();

            transformation.Name       = transformationName;
            transformation.Parameters = parameters;
            transformation.Rules      = rules;
            transformation.Location   = location;
            transformation.Version    = version;
            return(transformation);
        }