package Ġfactory . mik rate . dsl . builders Ċ Ċ import Ġfactory . mik rate . core . Migrate Action Ċ import Ġfactory . mik rate . core . actions . Db Specific Sql Action Ċ import Ġfactory . mik rate . core . actions . Rename Column Action Ċ import Ġfactory . mik rate . core . actions . Sql Action Ċ import Ġfactory . mik rate . dsl . Migration Dsl Ċ import Ġfactory . mik rate . dsl . contexts . Table Context Ċ import Ġfactory . mik rate . dsl . helpers . Column Ref Ċ import Ġfactory . mik rate . dsl . helpers . Table Ref Ċ import Ġorg . intellij . lang . annotations . Language Ċ Ċ /** Ċ Ġ* ĠBuilder Ġfor Ġbuilding Ġthe Ġindividual Ġsteps Ġof Ġa Ġmigrations . Ċ Ġ* Ċ Ġ* Ġ@ see ĠMigrate Action Ċ Ġ*/ Ċ @ Migration Dsl Ċ public Ġclass ĠAction Builder Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠList Ġthat Ġholds Ġall Ġthe Ġindividual Ġsteps Ġof Ġthe Ġmigration . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġval Ġactions : ĠMutable List < Migrate Action > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠExec utes Ġthe Ġgiven ĠSQL Ġstring Ġregardless Ġof Ġthe Ġdatabase Ġdialect . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see ĠSql Action ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġsql (@ Language (" Generic SQL ") Ġscript : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactions . add ( Sql Action ( script )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAllows Ġspecifying ĠSQL Ġstrings Ġthat Ġwill Ġbe Ġexecuted Ġfor Ġeach Ġdialect Ġdifferently . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see ĠDb Specific Sql Action ĊĠĠĠĠ Ġ* Ġ@ see ĠDb Specific Sql Builder ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġsql ( block : ĠDb Specific Sql Builder . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠDb Specific Sql Builder () ĊĠĠĠĠĠĠĠ Ġblock ( builder ) ĊĠĠĠĠĠĠĠ Ġval Ġmapping Ġ= Ġbuilder . build () ĊĠĠĠĠĠĠĠ Ġactions . add ( Db Specific Sql Action ( mapping )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa Ġnew Ġtable . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see Ġfactory . mik rate . core . actions . CreateTable Action ĊĠĠĠĠ Ġ* Ġ@ see ĠCreate Table Builder ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġcreate Table ( name : ĠString , Ġblock : ĠCreate Table Builder . () Ġ-> ĠUnit ): ĠTable Ref Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠCreate Table Builder ( name ) ĊĠĠĠĠĠĠĠ Ġblock ( builder ) ĊĠĠĠĠĠĠĠ Ġactions . add ( builder . build ()) ĊĠĠĠĠĠĠĠ Ġreturn ĠTable Ref ( name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMov es Ġexecution Ġinto Ġthe Ġcontext Ġof Ġa Ġtable . ĠFrom Ġthat Ġcontext Ġvarious Ġaction Ġon Ġthe Ġtable Ġcan Ġbe Ġexecuted . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see ĠTable Context ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġtable ( name : ĠString , Ġblock : ĠTable Context . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠTable Context ( name ) ĊĠĠĠĠĠĠĠ Ġblock ( context ) ĊĠĠĠĠĠĠĠ Ġactions . addAll ( context . actions ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġa Ġreference Ġto Ġthe Ġspecified Ġtable . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġtable ( name : ĠString ): ĠTable Ref Ġ= ĠTable Ref ( name ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRename s Ġa Ġcolumn . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun ĠColumn Ref . rename To ( to : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactions . add ( Rename Column Action ( table , Ġcolumn , Ġto )) ĊĠĠĠ Ġ} Ċ } Ċ