001package io.ebeaninternal.dbmigration.ddlgeneration;
002
003import io.ebeaninternal.dbmigration.migration.AddColumn;
004import io.ebeaninternal.dbmigration.migration.AddHistoryTable;
005import io.ebeaninternal.dbmigration.migration.AddTableComment;
006import io.ebeaninternal.dbmigration.migration.AddUniqueConstraint;
007import io.ebeaninternal.dbmigration.migration.AlterColumn;
008import io.ebeaninternal.dbmigration.migration.AlterForeignKey;
009import io.ebeaninternal.dbmigration.migration.AlterTable;
010import io.ebeaninternal.dbmigration.migration.ChangeSet;
011import io.ebeaninternal.dbmigration.migration.CreateIndex;
012import io.ebeaninternal.dbmigration.migration.CreateTable;
013import io.ebeaninternal.dbmigration.migration.DropColumn;
014import io.ebeaninternal.dbmigration.migration.DropHistoryTable;
015import io.ebeaninternal.dbmigration.migration.DropIndex;
016import io.ebeaninternal.dbmigration.migration.DropTable;
017
018/**
019 * DDL generation interface.
020 */
021public interface DdlHandler {
022
023  void generate(DdlWrite writer, ChangeSet changeSet);
024
025  void generate(DdlWrite writer, CreateTable createTable);
026
027  void generate(DdlWrite writer, DropTable dropTable);
028  
029  void generate(DdlWrite writer, AlterTable dropTable);
030
031  void generate(DdlWrite writer, AddTableComment addTableComment);
032
033  void generate(DdlWrite writer, AddColumn addColumn);
034
035  void generate(DdlWrite writer, DropColumn dropColumn);
036
037  void generate(DdlWrite writer, AlterColumn alterColumn);
038
039  void generate(DdlWrite writer, AddHistoryTable addHistoryTable);
040
041  void generate(DdlWrite writer, DropHistoryTable dropHistoryTable);
042
043  void generate(DdlWrite writer, CreateIndex createIndex);
044
045  void generate(DdlWrite writer, DropIndex dropIndex);
046
047  void generate(DdlWrite writer, AddUniqueConstraint constraint);
048
049  void generate(DdlWrite writer, AlterForeignKey alterForeignKey);
050
051  void generateProlog(DdlWrite writer);
052
053  void generateEpilog(DdlWrite writer);
054}