liquibase.change.core
Class AddLookupTableChange

java.lang.Object
  extended by liquibase.change.AbstractChange
      extended by liquibase.change.core.AddLookupTableChange
All Implemented Interfaces:
Change, LiquibaseSerializable

public class AddLookupTableChange
extends AbstractChange

Extracts data from an existing column to create a lookup table. A foreign key is created between the old column and the new lookup table.


Nested Class Summary
 
Nested classes/interfaces inherited from interface liquibase.serializer.LiquibaseSerializable
LiquibaseSerializable.SerializationType
 
Field Summary
 
Fields inherited from interface liquibase.serializer.LiquibaseSerializable
GENERIC_CHANGELOG_EXTENSION_NAMESPACE, GENERIC_SNAPSHOT_EXTENSION_NAMESPACE, STANDARD_CHANGELOG_NAMESPACE, STANDARD_SNAPSHOT_NAMESPACE
 
Constructor Summary
AddLookupTableChange()
           
 
Method Summary
 ChangeStatus checkStatus(Database database)
          Validate that this change executed successfully against the given database.
protected  Change[] createInverses()
          Create inverse changes that can roll back this change.
 SqlStatement[] generateStatements(Database database)
          Generates the SqlStatement objects required to run the change for the given database.
 String getConfirmationMessage()
          Confirmation message to be displayed after the change is executed.
 String getConstraintName()
           
 String getExistingColumnName()
           
 String getExistingTableCatalogName()
           
 String getExistingTableName()
           
 String getExistingTableSchemaName()
           
 String getFinalConstraintName()
           
 String getNewColumnDataType()
           
 String getNewColumnName()
           
 String getNewTableCatalogName()
           
 String getNewTableName()
           
 String getNewTableSchemaName()
           
 String getSerializedObjectNamespace()
           
 void setConstraintName(String constraintName)
           
 void setExistingColumnName(String existingColumnName)
           
 void setExistingTableCatalogName(String existingTableCatalogName)
           
 void setExistingTableName(String existingTableName)
           
 void setExistingTableSchemaName(String existingTableSchemaName)
           
 void setNewColumnDataType(String newColumnDataType)
           
 void setNewColumnName(String newColumnName)
           
 void setNewTableCatalogName(String newTableCatalogName)
           
 void setNewTableName(String newTableName)
           
 void setNewTableSchemaName(String newTableSchemaName)
           
 boolean supports(Database database)
          Implementation delegates logic to the SqlGenerator.supports(liquibase.statement.SqlStatement, liquibase.database.Database) method on the SqlStatement objects returned by Change.generateStatements(liquibase.database.Database).
 
Methods inherited from class liquibase.change.AbstractChange
createChangeMetaData, createChangeParameterMetadata, createDescriptionMetaData, createEmptyColumnConfig, createExampleValueMetaData, createMustEqualExistingMetaData, createRequiredDatabasesMetaData, createSerializationTypeMetaData, createSinceMetaData, createSupportedDatabasesMetaData, customLoadLogic, finishInitialization, generateCheckSum, generateRollbackStatements, generateRollbackStatementsVolatile, generateStatementsVolatile, getAffectedDatabaseObjects, getChangeSet, getDescription, getResourceAccessor, getSerializableFieldNamespace, getSerializableFields, getSerializableFieldType, getSerializableFieldValue, getSerializedObjectName, isInvalidProperty, load, serialize, serializeValue, setChangeSet, setResourceAccessor, supportsRollback, toString, validate, warn
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AddLookupTableChange

public AddLookupTableChange()
Method Detail

getExistingTableCatalogName

public String getExistingTableCatalogName()

setExistingTableCatalogName

public void setExistingTableCatalogName(String existingTableCatalogName)

getExistingTableSchemaName

public String getExistingTableSchemaName()

setExistingTableSchemaName

public void setExistingTableSchemaName(String existingTableSchemaName)

getExistingTableName

public String getExistingTableName()

setExistingTableName

public void setExistingTableName(String existingTableName)

getExistingColumnName

public String getExistingColumnName()

setExistingColumnName

public void setExistingColumnName(String existingColumnName)

getNewTableCatalogName

public String getNewTableCatalogName()

setNewTableCatalogName

public void setNewTableCatalogName(String newTableCatalogName)

getNewTableSchemaName

public String getNewTableSchemaName()

setNewTableSchemaName

public void setNewTableSchemaName(String newTableSchemaName)

getNewTableName

public String getNewTableName()

setNewTableName

public void setNewTableName(String newTableName)

getNewColumnName

public String getNewColumnName()

setNewColumnName

public void setNewColumnName(String newColumnName)

getNewColumnDataType

public String getNewColumnDataType()

setNewColumnDataType

public void setNewColumnDataType(String newColumnDataType)

getConstraintName

public String getConstraintName()

getFinalConstraintName

public String getFinalConstraintName()

setConstraintName

public void setConstraintName(String constraintName)

supports

public boolean supports(Database database)
Description copied from class: AbstractChange
Implementation delegates logic to the SqlGenerator.supports(liquibase.statement.SqlStatement, liquibase.database.Database) method on the SqlStatement objects returned by Change.generateStatements(liquibase.database.Database). If no or null SqlStatements are returned by generateStatements then this method returns true. If AbstractChange.generateStatementsVolatile(liquibase.database.Database) returns true, we cannot call generateStatements and so assume true.

Specified by:
supports in interface Change
Overrides:
supports in class AbstractChange

createInverses

protected Change[] createInverses()
Description copied from class: AbstractChange
Create inverse changes that can roll back this change. This method is intended to be overriden by Change implementations that have a logical inverse operation. Default implementation returns null.

If AbstractChange.generateRollbackStatements(liquibase.database.Database) is overridden, this method may not be called.

Overrides:
createInverses in class AbstractChange
Returns:
Return null if there is no corresponding inverse and therefore automatic rollback is not possible. Return an empty array to have a no-op rollback.

generateStatements

public SqlStatement[] generateStatements(Database database)
Description copied from interface: Change
Generates the SqlStatement objects required to run the change for the given database.

NOTE: This method may be called multiple times throughout the changelog execution process and may be called in documentation generation and other integration points as well.

If this method reads from the current database state or uses any other logic that will be affected by whether previous changeSets have ran or not, you must return true from Change.generateStatementsVolatile(liquibase.database.Database).


checkStatus

public ChangeStatus checkStatus(Database database)
Description copied from interface: Change
Validate that this change executed successfully against the given database. This will check that the update completed at a high level plus check details of the change. For example, a change to add a column will check that the column exists plus data type, default values, etc.

Specified by:
checkStatus in interface Change
Overrides:
checkStatus in class AbstractChange

getConfirmationMessage

public String getConfirmationMessage()
Description copied from interface: Change
Confirmation message to be displayed after the change is executed. Should include relevant configuration settings to make it as helpful as possible. This method may be called outside the changelog execution process, such as in documentation generation.


getSerializedObjectNamespace

public String getSerializedObjectNamespace()
Specified by:
getSerializedObjectNamespace in interface LiquibaseSerializable
Overrides:
getSerializedObjectNamespace in class AbstractChange


Copyright © 2016 Liquibase.org. All rights reserved.