- java.lang.Object
-
- org.tentackle.model.migrate.IndexMigrator
-
public class IndexMigrator extends Object
Handles the migration of indexes.- Author:
- harald
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classIndexMigrator.ResultMigration result.
-
Constructor Summary
Constructors Constructor Description IndexMigrator(Entity entity, Index index, Backend backend, IndexMetaData indexMetaData)Creates a migrator.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description BackendgetBackend()Gets the backend.IndexgetIndex()Gets the index to migrate.IndexMetaDatagetIndexMetaData()Gets the index metadata.static booleanisLogicallyDifferent(Index modelIndex, IndexMetaData dbIndex, StringBuilder commentBuf)Compares an model index with an existing database index.IndexMigrator.Resultmigrate()Migrates the index.
-
-
-
Constructor Detail
-
IndexMigrator
public IndexMigrator(Entity entity, Index index, Backend backend, IndexMetaData indexMetaData)
Creates a migrator.- Parameters:
entity- the entityindex- the index to migrate, null if no such index in modelbackend- the backendindexMetaData- the foreign meta data, null if key does not exist
-
-
Method Detail
-
getBackend
public Backend getBackend()
Gets the backend.- Returns:
- the backend
-
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(Index modelIndex, IndexMetaData dbIndex, StringBuilder commentBuf)
Compares an model index with an existing database index.- Parameters:
modelIndex- the index as defined in the modeldbIndex- the index existing in the databasecommentBuf- comment buffer to show the difference, null if none- Returns:
- true if they are different, false if logically equal
-
-