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); }