View Javadoc

1   package liquibase.sqlgenerator.core;
2   
3   import liquibase.database.Database;
4   import liquibase.database.core.H2Database;
5   import liquibase.database.core.HsqlDatabase;
6   import liquibase.exception.DatabaseException;
7   import liquibase.exception.UnexpectedLiquibaseException;
8   import liquibase.sql.Sql;
9   import liquibase.sql.UnparsedSql;
10  import liquibase.sqlgenerator.SqlGeneratorChain;
11  import liquibase.statement.core.GetViewDefinitionStatement;
12  
13  public class GetViewDefinitionGeneratorHsql extends GetViewDefinitionGenerator {
14      @Override
15      public int getPriority() {
16          return PRIORITY_DATABASE;
17      }
18  
19      @Override
20      public boolean supports(GetViewDefinitionStatement statement, Database database) {
21          return database instanceof HsqlDatabase;
22      }
23  
24      @Override
25      public Sql[] generateSql(GetViewDefinitionStatement statement, Database database,
26              SqlGeneratorChain sqlGeneratorChain) {
27          try {
28              return new Sql[] { new UnparsedSql(
29                      "SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.SYSTEM_VIEWS WHERE TABLE_NAME = '"
30                              + statement.getViewName() + "' AND TABLE_SCHEMA='"
31                              + database.convertRequestedSchemaToSchema(statement.getSchemaName()) + "'") };
32          } catch (DatabaseException e) {
33              throw new UnexpectedLiquibaseException(e);
34          }
35      }
36  }