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.CreateIndex; 011import io.ebeaninternal.dbmigration.migration.CreateTable; 012import io.ebeaninternal.dbmigration.migration.DropColumn; 013import io.ebeaninternal.dbmigration.migration.DropHistoryTable; 014import io.ebeaninternal.dbmigration.migration.DropIndex; 015import io.ebeaninternal.dbmigration.migration.DropTable; 016 017/** 018 * Write table DDL. 019 */ 020public interface TableDdl { 021 022 /** 023 * Generate the create table change. 024 */ 025 void generate(DdlWrite writer, CreateTable createTable); 026 027 /** 028 * Write the drop column change. 029 */ 030 void generate(DdlWrite writer, DropTable dropTable); 031 032 /** 033 * Write alter table changes. 034 */ 035 void generate(DdlWrite writer, AlterTable dropTable); 036 037 /** 038 * Write the add column change. 039 */ 040 void generate(DdlWrite writer, AddColumn addColumn); 041 042 /** 043 * Write the alter column changes. 044 */ 045 void generate(DdlWrite writer, AlterColumn alterColumn); 046 047 /** 048 * Write the drop column change. 049 */ 050 void generate(DdlWrite writer, DropColumn dropColumn); 051 052 /** 053 * Write the AddTableComment change. 054 */ 055 void generate(DdlWrite writer, AddTableComment addTableComment); 056 057 /** 058 * Write the AddHistoryTable change. 059 */ 060 void generate(DdlWrite writer, AddHistoryTable addHistoryTable); 061 062 /** 063 * Write the DropHistoryTable change. 064 */ 065 void generate(DdlWrite writer, DropHistoryTable dropHistoryTable); 066 067 /** 068 * Generate the create index change. 069 */ 070 void generate(DdlWrite writer, CreateIndex createIndex); 071 072 /** 073 * Write the drop index change. 074 */ 075 void generate(DdlWrite writer, DropIndex dropIndex); 076 077 /** 078 * Write add unique constraint. 079 */ 080 void generate(DdlWrite writer, AddUniqueConstraint constraint); 081 082 /** 083 * Writes alter foreign key statements. 084 */ 085 void generate(DdlWrite writer, AlterForeignKey alterForeignKey); 086 087 /** 088 * Generate any extra DDL such as stored procedures or TableValueParameters. 089 */ 090 void generateProlog(DdlWrite writer); 091 092 /** 093 * Generate any extra DDL such as regeneration of history triggers. 094 */ 095 void generateEpilog(DdlWrite writer); 096}