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