Class CreateJsonIndexGenerator

java.lang.Object
liquibase.sqlgenerator.core.AbstractSqlGenerator<CreateJsonIndexStatement>
org.keycloak.models.map.storage.jpa.liquibase.extension.CreateJsonIndexGenerator
All Implemented Interfaces:
liquibase.servicelocator.PrioritizedService, liquibase.sqlgenerator.SqlGenerator<CreateJsonIndexStatement>

public class CreateJsonIndexGenerator extends liquibase.sqlgenerator.core.AbstractSqlGenerator<CreateJsonIndexStatement>
A SqlGenerator implementation that supports CreateJsonIndexStatements. It generates the SQL required to create an index for properties of JSON files stored in one of the table columns.
Author:
Stefan Guilhen
  • Field Summary

    Fields inherited from interface liquibase.servicelocator.PrioritizedService

    COMPARATOR

    Fields inherited from interface liquibase.sqlgenerator.SqlGenerator

    EMPTY_SQL, PRIORITY_DATABASE, PRIORITY_DEFAULT
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    liquibase.sql.Sql[]
    generateSql(CreateJsonIndexStatement statement, liquibase.database.Database database, liquibase.sqlgenerator.SqlGeneratorChain sqlGeneratorChain)
     
    protected liquibase.structure.core.Index
    getAffectedIndex(liquibase.statement.core.CreateIndexStatement statement)
     
    int
    Override the priority.
    protected void
    handleJsonIndex(CreateJsonIndexStatement statement, liquibase.database.Database database, StringBuilder builder)
     
    liquibase.exception.ValidationErrors
    validate(CreateJsonIndexStatement createIndexStatement, liquibase.database.Database database, liquibase.sqlgenerator.SqlGeneratorChain sqlGeneratorChain)
     

    Methods inherited from class liquibase.sqlgenerator.core.AbstractSqlGenerator

    generateRollbackStatementsIsVolatile, generateStatementsIsVolatile, looksLikeFunctionCall, supports, warn

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • CreateJsonIndexGenerator

      public CreateJsonIndexGenerator()
  • Method Details

    • getPriority

      public int getPriority()
      Override the priority. This is needed because CreateJsonIndexStatement is a subtype of CreateIndexStatement and is thus a match for the standard index generators. By increasing the priority we ensure this is processed before the other generators.
      Specified by:
      getPriority in interface liquibase.servicelocator.PrioritizedService
      Specified by:
      getPriority in interface liquibase.sqlgenerator.SqlGenerator<CreateJsonIndexStatement>
      Overrides:
      getPriority in class liquibase.sqlgenerator.core.AbstractSqlGenerator<CreateJsonIndexStatement>
      Returns:
      this generator's priority.
    • validate

      public liquibase.exception.ValidationErrors validate(CreateJsonIndexStatement createIndexStatement, liquibase.database.Database database, liquibase.sqlgenerator.SqlGeneratorChain sqlGeneratorChain)
    • generateSql

      public liquibase.sql.Sql[] generateSql(CreateJsonIndexStatement statement, liquibase.database.Database database, liquibase.sqlgenerator.SqlGeneratorChain sqlGeneratorChain)
    • handleJsonIndex

      protected void handleJsonIndex(CreateJsonIndexStatement statement, liquibase.database.Database database, StringBuilder builder)
    • getAffectedIndex

      protected liquibase.structure.core.Index getAffectedIndex(liquibase.statement.core.CreateIndexStatement statement)