Class IndexMigrator

java.lang.Object
org.tentackle.model.migrate.IndexMigrator

public class IndexMigrator extends Object
Handles the migration of indexes.
Author:
harald
  • Constructor Details

    • IndexMigrator

      public IndexMigrator(Entity entity, Index index, Backend backend, IndexMetaData indexMetaData)
      Creates a migrator.
      Parameters:
      entity - the entity
      index - the index to migrate, null if no such index in model
      backend - the backend
      indexMetaData - the foreign metadata, null if key does not exist
  • Method Details

    • getBackend

      public Backend getBackend()
      Gets the backend.
      Returns:
      the backend
    • getEntity

      public Entity getEntity()
      Gets the migrated entity.
      Returns:
      the entity
    • getIndex

      public Index getIndex()
      Gets the index to migrate.
      Returns:
      the index, null if no such index in model
    • getIndexMetaData

      public IndexMetaData getIndexMetaData()
      Gets the index metadata.
      Returns:
      the meta date, null if no such index in database
    • migrate

      public IndexMigrator.Result migrate()
      Migrates the index.
      Returns:
      the SQL code, empty string if nothing to migrate
    • isLogicallyDifferent

      public static boolean isLogicallyDifferent(Backend backend, Index modelIndex, IndexMetaData dbIndex, StringBuilder commentBuf)
      Compares a model index with an existing database index.
      Parameters:
      backend - the backend
      modelIndex - the index as defined in the model
      dbIndex - the index existing in the database
      commentBuf - comment buffer to show the difference, null if none
      Returns:
      true if they are different, false if logically equal