package com.robotoworks.mechanoid.db.generator; import com.google.inject.Inject; import com.robotoworks.mechanoid.db.generator.SqliteDatabaseStatementGenerator; import com.robotoworks.mechanoid.db.sqliteModel.DDLStatement; import com.robotoworks.mechanoid.db.sqliteModel.DatabaseBlock; import com.robotoworks.mechanoid.db.sqliteModel.MigrationBlock; import com.robotoworks.mechanoid.db.sqliteModel.Model; import com.robotoworks.mechanoid.text.Strings; import org.eclipse.emf.common.util.EList; import org.eclipse.xtend2.lib.StringConcatenation; import org.eclipse.xtext.xbase.lib.Extension; @SuppressWarnings("all") public class SqliteMigrationGenerator { @Inject @Extension private SqliteDatabaseStatementGenerator _sqliteDatabaseStatementGenerator; public CharSequence generate(final Model model, final MigrationBlock migration, final int version) { StringConcatenation _builder = new StringConcatenation(); _builder.append("/*"); _builder.newLine(); _builder.append(" "); _builder.append("* Generated by Robotoworks Mechanoid"); _builder.newLine(); _builder.append(" "); _builder.append("*/"); _builder.newLine(); _builder.append("package "); String _packageName = model.getPackageName(); _builder.append(_packageName, ""); _builder.append(".migrations;"); _builder.newLineIfNotEmpty(); _builder.newLine(); _builder.append("import android.database.sqlite.SQLiteDatabase;"); _builder.newLine(); _builder.append("import com.robotoworks.mechanoid.db.SQLiteMigration;"); _builder.newLine(); _builder.newLine(); _builder.append("public class Default"); DatabaseBlock _database = model.getDatabase(); String _name = _database.getName(); String _pascalize = Strings.pascalize(_name); _builder.append(_pascalize, ""); _builder.append("MigrationV"); _builder.append(version, ""); _builder.append(" extends SQLiteMigration {"); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append("@Override"); _builder.newLine(); _builder.append("\t"); _builder.append("public void onBeforeUp(SQLiteDatabase db) {}"); _builder.newLine(); _builder.append("\t"); _builder.newLine(); _builder.append("\t"); _builder.append("@Override"); _builder.newLine(); _builder.append("\t"); _builder.append("public void up(SQLiteDatabase db) {"); _builder.newLine(); _builder.append("\t\t"); EList<DDLStatement> _statements = migration.getStatements(); CharSequence _generateStatements = this._sqliteDatabaseStatementGenerator.generateStatements(_statements); _builder.append(_generateStatements, "\t\t"); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append("}"); _builder.newLine(); _builder.append("\t"); _builder.newLine(); _builder.append("\t"); _builder.append("@Override"); _builder.newLine(); _builder.append("\t"); _builder.append("public void onAfterUp(SQLiteDatabase db) {}"); _builder.newLine(); _builder.append("}"); _builder.newLine(); return _builder; } }