liquibase.change.custom.CustomChange Maven / Gradle / Ivy
package liquibase.change.custom;
import liquibase.database.Database;
import liquibase.exception.SetupException;
import liquibase.exception.ValidationErrors;
import liquibase.resource.ResourceAccessor;
/**
* Interface to implement when creating a custom change. Actual custom changes implementations need to
* implement CustomSqlChange or CustomTaskChange.
*
* See http://www.liquibase.org/manual/custom_refactoring_class for more information.
*/
public interface CustomChange {
/**
* Confirmation message to be displayed after the change is executed
*
* @return a {@link String} containing the message after the change is executed
*/
public String getConfirmationMessage();
/**
* This method will be called after the no arg constructor and all of the
* properties have been set to allow the task to do any heavy tasks or
* more importantly generate any exceptions to report to the user about
* the settings provided.
*
*/
public void setUp() throws SetupException;
/**
* Sets the fileOpener that should be used for any file loading and resource
* finding for files that are provided by the user.
*/
public void setFileOpener(ResourceAccessor resourceAccessor);
/**
* Tests that the change is configured correctly before attempting to execute it.
* @param database The database the change will be ran against
*/
public ValidationErrors validate(Database database);
}