View Javadoc

1   package liquibase.snapshot;
2   
3   import liquibase.database.Database;
4   import liquibase.database.AbstractDatabase;
5   import liquibase.database.structure.Table;
6   import liquibase.database.structure.Column;
7   import liquibase.database.structure.ForeignKey;
8   import liquibase.diff.DiffStatusListener;
9   import liquibase.exception.DatabaseException;
10  import liquibase.servicelocator.PrioritizedService;
11  
12  import java.util.Set;
13  import java.util.List;
14  
15  public interface DatabaseSnapshotGenerator {
16      /**
17       * Default generator, lower priority.
18       */
19      public static final int PRIORITY_DEFAULT = 1;
20      /**
21       * Generator specific to database, higher priority.
22       * 
23       */
24      public static final int PRIORITY_DATABASE = 5;
25  
26      boolean supports(Database database);
27  
28      int getPriority(Database database);
29  
30      DatabaseSnapshot createSnapshot(Database database, String schema, Set<DiffStatusListener> listeners)
31              throws DatabaseException;
32  
33      Table getDatabaseChangeLogTable(Database database) throws DatabaseException;
34  
35      Table getDatabaseChangeLogLockTable(Database database) throws DatabaseException;
36  
37      Table getTable(String schemaName, String tableName, Database database) throws DatabaseException;
38  
39      Column getColumn(String schemaName, String tableName, String columnName, Database database)
40              throws DatabaseException;
41  
42      ForeignKey getForeignKeyByForeignKeyTable(String schemaName, String tableName, String fkName, Database database)
43              throws DatabaseException;
44  
45      List<ForeignKey> getForeignKeys(String schemaName, String tableName, Database database) throws DatabaseException;
46  
47      boolean hasIndex(String schemaName, String tableName, String indexName, Database database, String columnNames)
48              throws DatabaseException;
49  
50      boolean hasDatabaseChangeLogTable(Database database);
51  
52      boolean hasDatabaseChangeLogLockTable(Database database);
53  
54      public boolean hasTable(String schemaName, String tableName, Database database);
55  
56      public boolean hasView(String schemaName, String viewName, Database database);
57  }