Exemplo n.º 1
0
        static void AppendResetAllMethod(StringBuilder sb, string schemaKey, Dictionary <string, object> schemaData)
        {
            bool shouldAppendSpace = false;

            sb.Append("".PadLeft(GDECodeGenConstants.IndentLevel2));
            sb.Append(GDECodeGenConstants.ResetAllDeclaration);
            sb.Append("\n");

            // Reset all fields
            List <string> fields = GDEItemManager.SchemaFieldKeys(schemaKey, schemaData);

            foreach (string fieldName in fields)
            {
                if (shouldAppendSpace)
                {
                    sb.Append("\n");
                }

                sb.Append("".PadLeft(GDECodeGenConstants.IndentLevel3));
                sb.AppendFormat(GDECodeGenConstants.ResetToDefaultFormat, fieldName);
                shouldAppendSpace = true;
            }

            if (shouldAppendSpace)
            {
                sb.Append("\n");
            }

            // Call reset on any custom types
            for (int dimension = 0; dimension <= 2; dimension++)
            {
                fields = GDEItemManager.SchemaCustomFieldKeys(schemaKey, dimension);
                foreach (string fieldName in fields)
                {
                    if (shouldAppendSpace)
                    {
                        sb.Append("\n");
                    }

                    sb.Append("".PadLeft(GDECodeGenConstants.IndentLevel3));

                    if (dimension == 0)
                    {
                        sb.AppendFormat(GDECodeGenConstants.CustomResetAllFormat, fieldName);
                    }
                    else
                    {
                        sb.AppendFormat(GDECodeGenConstants.CustomResetAllFormat, fieldName);
                    }

                    shouldAppendSpace = true;
                }
            }

            sb.Append("\n");
            sb.Append("\n");

            sb.Append("".PadLeft(GDECodeGenConstants.IndentLevel3));
            sb.Append(GDECodeGenConstants.ResetAllEndMethod);
        }
Exemplo n.º 2
0
        List <FieldInfo> GetFieldInfoFromSchema(string schemaKey, Dictionary <string, object> schemaData)
        {
            List <FieldInfo> fieldInfos = new List <FieldInfo>();
            List <string>    fieldKeys  = GDEItemManager.SchemaFieldKeys(schemaKey, schemaData);

            foreach (var fieldKey in fieldKeys)
            {
                int listDimension;

                FieldInfo field = new FieldInfo();

                field.name = fieldKey;
                string isListKey = string.Format(GDMConstants.MetaDataFormat, GDMConstants.IsListPrefix, fieldKey);
                schemaData.TryGetInt(isListKey, out listDimension);

                // Set the list dimension
                if (listDimension == 0)
                {
                    field.isList   = false;
                    field.is2DList = false;
                }
                else if (listDimension == 1)
                {
                    field.isList   = true;
                    field.is2DList = false;
                }
                else
                {
                    field.isList   = false;
                    field.is2DList = true;
                }

                // Parse the field type
                string customType;
                field.type = ParseFieldType(fieldKey, schemaData, out customType);
                if (field.type.Equals(BasicFieldType.Undefined))
                {
                    field.isCustom   = true;
                    field.customType = customType;
                }

                fieldInfos.Add(field);
            }

            return(fieldInfos);
        }