View Javadoc

1   //
2   // Copyright (c) 2004, International Decision Systems
3   // all rights reserved
4   //
5   package net.sourceforge.addam.ddlgen.oracle;
6   
7   
8   import java.io.BufferedWriter;
9   import java.sql.*;
10  import java.util.List;
11  
12  import net.sourceforge.addam.ddlgen.Filter;
13  
14  public class IndexGenerator extends DBMSMetadataGenerator {
15  
16      private static final String TABLE_SQL = "select distinct table_name from all_indexes ao where owner=? " +
17          "and index_name not in (select constraint_name from all_constraints where owner=ao.owner)";
18  
19      private static final String INDEX_SQL = "select index_name from all_indexes ao where owner=? and table_name=?" +
20          "and index_name not in (select constraint_name from all_constraints where owner=ao.owner)";
21  
22      public String objectType() {
23          return "TABLE";
24      }
25  
26      public List<String> getObjects(String catalog, String schema, Filter filter,
27                                     Connection connection, DatabaseMetaData metadata) throws Exception {
28          return getObjects(catalog, schema, objectType(), filter, connection, metadata, TABLE_SQL, schema);
29      }
30  
31      public void generate(String catalog, String schema, String object,
32                           String vendor, Connection connection, DatabaseMetaData metadata, BufferedWriter writer)
33              throws Exception {
34          Filter allIndexes = new Filter() {
35              public boolean includes(String objectName) {
36                  return true;
37              }
38          };
39  
40          List<String> indexes = getObjects(catalog, schema, "INDEX", allIndexes, connection, metadata, INDEX_SQL, schema, object);
41          for (String index : indexes) {
42              super.generate(catalog,schema,"INDEX",index,vendor,connection,metadata,writer);
43          }
44      }
45  }