Esempio n. 1
0
        private void GenerateCode()
        {
            try
            {
                _codeWriter.DeleteGeneratedFiles();

                foreach (var item in _schema.Enums)
                {
                    EnumCodeGenerator.Generate(item, Settings);
                }
                foreach (var item in _schema.Structs)
                {
                    if (string.IsNullOrEmpty(item.switchEnum))
                    {
                        ObjectCodeGenerator.Generate(item, ObjectType.SimpleStruct, Settings);
                    }
                    else
                    {
                        ObjectCodeGenerator.Generate(item, ObjectType.MutableStruct, Settings);
                    }
                }
                foreach (var item in _schema.Configurations)
                {
                    ObjectCodeGenerator.Generate(item, ObjectType.SimpleObject, Settings);
                    DatabaseCodeGenerator.AddConfiguration(item.name, item.typeid);
                }

                foreach (var item in _schema.Objects)
                {
                    if (string.IsNullOrEmpty(item.switchEnum))
                    {
                        ObjectCodeGenerator.Generate(item, ObjectType.SimpleObject, Settings);
                    }
                    else
                    {
                        ObjectCodeGenerator.Generate(item, ObjectType.MutableObject, Settings);
                    }

                    DatabaseCodeGenerator.AddClass(item.name, item.typeid);
                }

                DatabaseCodeGenerator.Generate(Settings);
            }
            catch (Exception e)
            {
                Debug.LogError("Code generation falied");
                Debug.LogException(e);

                _codeWriter.DeleteGeneratedFiles();
            }
        }
Esempio n. 2
0
        private void GenerateCode()
        {
            var schema = DatabaseSchema.Load("Schema");
            var writer = new CodeWriter {
                RootFolder = "Assets/Database/Scripts/Generated"
            };

            var enumGenerator       = new EnumCodeGenerator(writer);
            var databaseGenerator   = new DatabaseCodeGenerator(schema, writer);
            var objectCodeGenerator = new ObjectCodeGenerator(schema, writer);

            var builder = new CodeBuilder(schema, writer, enumGenerator, databaseGenerator, objectCodeGenerator);

            builder.Build();
        }