liquibase.sqlgenerator.core
Class InsertOrUpdateGenerator

java.lang.Object
  extended by liquibase.sqlgenerator.core.AbstractSqlGenerator<InsertOrUpdateStatement>
      extended by liquibase.sqlgenerator.core.InsertOrUpdateGenerator
All Implemented Interfaces:
PrioritizedService, SqlGenerator<InsertOrUpdateStatement>
Direct Known Subclasses:
InsertOrUpdateGeneratorDB2, InsertOrUpdateGeneratorH2, InsertOrUpdateGeneratorHsql, InsertOrUpdateGeneratorMSSQL, InsertOrUpdateGeneratorMySQL, InsertOrUpdateGeneratorOracle, InsertOrUpdateGeneratorPostgres

public abstract class InsertOrUpdateGenerator
extends AbstractSqlGenerator<InsertOrUpdateStatement>


Field Summary
 
Fields inherited from interface liquibase.sqlgenerator.SqlGenerator
PRIORITY_DATABASE, PRIORITY_DEFAULT
 
Constructor Summary
InsertOrUpdateGenerator()
           
 
Method Summary
 Sql[] generateSql(InsertOrUpdateStatement insertOrUpdateStatement, Database database, SqlGeneratorChain sqlGeneratorChain)
          Generate the actual Sql for the given statement and database.
protected abstract  String getElse(Database database)
           
protected  String getInsertStatement(InsertOrUpdateStatement insertOrUpdateStatement, Database database, SqlGeneratorChain sqlGeneratorChain)
           
protected  String getPostUpdateStatements()
           
 int getPriority()
          Of all the SqlGenerators that "support" a given SqlStatement/Database, SqlGeneratorFactory will return the one with the highest priority.
protected abstract  String getRecordCheck(InsertOrUpdateStatement insertOrUpdateStatement, Database database, String whereClause)
           
protected  String getUpdateStatement(InsertOrUpdateStatement insertOrUpdateStatement, Database database, String whereClause, SqlGeneratorChain sqlGeneratorChain)
           
protected  String getWhereClause(InsertOrUpdateStatement insertOrUpdateStatement, Database database)
           
 ValidationErrors validate(InsertOrUpdateStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain)
          Validate the data contained in the SqlStatement.
 
Methods inherited from class liquibase.sqlgenerator.core.AbstractSqlGenerator
requiresUpdatedDatabaseMetadata, supports, warn
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InsertOrUpdateGenerator

public InsertOrUpdateGenerator()
Method Detail

getRecordCheck

protected abstract String getRecordCheck(InsertOrUpdateStatement insertOrUpdateStatement,
                                         Database database,
                                         String whereClause)

getElse

protected abstract String getElse(Database database)

getPostUpdateStatements

protected String getPostUpdateStatements()

getPriority

public int getPriority()
Description copied from interface: SqlGenerator
Of all the SqlGenerators that "support" a given SqlStatement/Database, SqlGeneratorFactory will return the one with the highest priority.

Specified by:
getPriority in interface PrioritizedService
Specified by:
getPriority in interface SqlGenerator<InsertOrUpdateStatement>
Overrides:
getPriority in class AbstractSqlGenerator<InsertOrUpdateStatement>

validate

public ValidationErrors validate(InsertOrUpdateStatement statement,
                                 Database database,
                                 SqlGeneratorChain sqlGeneratorChain)
Description copied from interface: SqlGenerator
Validate the data contained in the SqlStatement. If there are no errors, return an empty ValidationErrors object, not a null value. Liquibase will inspect the ValidationErrors result before attempting to call generateSql.


getWhereClause

protected String getWhereClause(InsertOrUpdateStatement insertOrUpdateStatement,
                                Database database)

getInsertStatement

protected String getInsertStatement(InsertOrUpdateStatement insertOrUpdateStatement,
                                    Database database,
                                    SqlGeneratorChain sqlGeneratorChain)

getUpdateStatement

protected String getUpdateStatement(InsertOrUpdateStatement insertOrUpdateStatement,
                                    Database database,
                                    String whereClause,
                                    SqlGeneratorChain sqlGeneratorChain)
                             throws LiquibaseException
Parameters:
insertOrUpdateStatement -
database -
whereClause -
sqlGeneratorChain -
Returns:
the update statement, if there is nothing to update return null
Throws:
LiquibaseException

generateSql

public Sql[] generateSql(InsertOrUpdateStatement insertOrUpdateStatement,
                         Database database,
                         SqlGeneratorChain sqlGeneratorChain)
Description copied from interface: SqlGenerator
Generate the actual Sql for the given statement and database.



Copyright © 2012 Liquibase.org. All Rights Reserved.