Class ModelComparator

java.lang.Object
org.jumpmind.db.alter.ModelComparator

public class ModelComparator extends Object
Compares two database models and creates change objects that express how to adapt the first model so that it becomes the second one. Neither of the models are changed in the process, however, it is also assumed that the models do not change in between.
  • Field Details

    • platformInfo

      protected DatabaseInfo platformInfo
      The platform information.
    • caseSensitive

      protected boolean caseSensitive
      Whether comparison is case sensitive.
    • ddlBuilder

      protected IDdlBuilder ddlBuilder
  • Constructor Details

    • ModelComparator

      public ModelComparator(IDdlBuilder ddlBuilder, DatabaseInfo platformInfo, boolean caseSensitive)
      Creates a new model comparator object.
      Parameters:
      platformInfo - The platform info
      caseSensitive - Whether comparison is case sensitive
  • Method Details

    • compare

      public List<IModelChange> compare(Database sourceModel, Database targetModel)
      Compares the two models and returns the changes necessary to create the second model from the first one.
      Parameters:
      sourceModel - The source model
      targetModel - The target model
      Returns:
      The changes
    • compareTables

      public List<IModelChange> compareTables(Database sourceModel, Table sourceTable, Database targetModel, Table targetTable)
      Compares the two tables and returns the changes necessary to create the second table from the first one.
      Parameters:
      sourceModel - The source model which contains the source table
      sourceTable - The source table
      targetModel - The target model which contains the target table
      targetTable - The target table
      Returns:
      The changes
    • detectLoggingChanges

      public void detectLoggingChanges(Database sourceModel, Table sourceTable, Database targetModel, Table targetTable, ArrayList<IModelChange> changes)
      Compares tables and appends detected logging mode changes (necessary to create the targetTable from the sourceTable) to specified list.
    • detectForeignKeyChanges

      public void detectForeignKeyChanges(Database sourceModel, Table sourceTable, Database targetModel, Table targetTable, ArrayList<IModelChange> changes)
      Compares tables and appends detected ForeignKey changes (necessary to create the targetTable from the sourceTable) to specified list.
    • detectIndexChanges

      public void detectIndexChanges(Database sourceModel, Table sourceTable, Database targetModel, Table targetTable, ArrayList<IModelChange> changes)
      Compares tables and appends detected index changes (necessary to create the targetTable from the sourceTable) to specified list.
    • detectColumnChanges

      public void detectColumnChanges(Database sourceModel, Table sourceTable, Database targetModel, Table targetTable, ArrayList<IModelChange> changes)
      Compares tables and appends detected column changes (necessary to create the targetTable from the sourceTable) to specified list.
    • detectPrimaryKeyChanges

      public void detectPrimaryKeyChanges(Database sourceModel, Table sourceTable, Database targetModel, Table targetTable, ArrayList<IModelChange> changes)
      Compares tables and appends detected primary key & related column changes (necessary to create the targetTable from the sourceTable) to specified list.
    • detectTriggerChanges

      public void detectTriggerChanges(Database sourceModel, Table sourceTable, Database targetModel, Table targetTable, ArrayList<IModelChange> changes)
    • compareColumns

      public List<TableChange> compareColumns(Table sourceTable, Column sourceColumn, Table targetTable, Column targetColumn)
      Compares the two columns and returns the changes necessary to create the second column from the first one.
      Parameters:
      sourceTable - The source table which contains the source column
      sourceColumn - The source column
      targetTable - The target table which contains the target column
      targetColumn - The target column
      Returns:
      The changes