Exemple #1
0
        private Template FieldToProperty(JToken field)
        {
            Template template = new PropertyDeclarationTemplate();

            try
            {
                TorqueType propType = new TorqueType(field["Type"].ToString());

                string fieldName = field["Name"].ToString().First().ToString().ToUpper() +
                                   field["Name"].ToString().Substring(1);
                int    elementCount       = field["ElementCount"].ToObject <int>();
                string fieldArrayIndexArg = elementCount > 1 ? $", {elementCount}" : "";

                string value = $"getFieldValue(\"{fieldName}\"{fieldArrayIndexArg})";

                string returnString = propType.FromString(value);

                if (elementCount > 1)
                {
                    template = new DynamicFieldVectorPropertyDeclarationTemplate();
                }
                else
                {
                    template = new PropertyDeclarationTemplate();
                }
                template.ReplaceField("FieldType", propType.ManagedType);
                template.ReplaceField("Return", returnString);
                template.ReplaceField("FieldName", fieldName);
                template.ReplaceField("FieldCount", elementCount.ToString());
                template.ReplaceField("Getter", propType.FromString("val"));
                template.ReplaceField("Setter", propType.ToString("obj"));
                template.ReplaceField("Set", propType.ToString("value"));
                template.ReplaceField("FieldArrayIndexArg", elementCount > 1 ? $", {elementCount}" : "");
            }
            catch (FieldDeprecatedException)
            {
                return(new EmptyTemplate());
            }
            return(template);
        }