|                                                                                                              1
 24
 25  package com.mckoi.database;
 26
 27  import java.util.Arrays
  ; 28
 29
 38
 39  final class GTTableInfoDataSource extends GTDataSource {
 40
 41
 44    private Transaction transaction;
 45
 46
 49    private TableName[] table_list;
 50
 51
 54    private String
  [] table_types; 55
 56
 59    private int row_count;
 60
 61
 64    public GTTableInfoDataSource(Transaction transaction) {
 65      super(transaction.getSystem());
 66      this.transaction = transaction;
 67    }
 68
 69
 72    public GTTableInfoDataSource init() {
 73          table_list = transaction.getTableList();
 75      Arrays.sort(table_list);
 76      table_types = new String
  [table_list.length]; 77      row_count = table_list.length;
 78
 79      for (int i = 0; i < table_list.length; ++i) {
 80        String
  cur_type = transaction.getTableType(table_list[i]); 81                    if (cur_type.equals("TABLE") &&
 84            table_list[i].getSchema().equals("SYS_INFO")) {
 85          cur_type = "SYSTEM TABLE";
 86        }
 87        table_types[i] = cur_type;
 88      }
 89
 90      return this;
 91    }
 92
 93
 95    public DataTableDef getDataTableDef() {
 96      return DEF_DATA_TABLE_DEF;
 97    }
 98
 99    public int getRowCount() {
 100     return row_count;
 101   }
 102
 103   public TObject getCellContents(final int column, final int row) {
 104     final TableName tname = table_list[row];
 105     switch (column) {
 106       case 0:          return columnValue(column, tname.getSchema());
 108       case 1:          return columnValue(column, tname.getName());
 110       case 2:          return columnValue(column, table_types[row]);
 112       case 3:                  return columnValue(column, "");
 115       default:
 116         throw new Error
  ("Column out of bounds."); 117     }
 118   }
 119
 120
 122   public void dispose() {
 123     super.dispose();
 124     table_list = null;
 125     transaction = null;
 126   }
 127
 128
 130
 133   static final DataTableDef DEF_DATA_TABLE_DEF;
 134
 135   static {
 136
 137     DataTableDef def = new DataTableDef();
 138     def.setTableName(new TableName(Database.SYSTEM_SCHEMA, "sUSRTableInfo"));
 139
 140         def.addColumn(stringColumn("schema"));
 142     def.addColumn(stringColumn("name"));
 143     def.addColumn(stringColumn("type"));
 144     def.addColumn(stringColumn("other"));
 145
 146         def.setImmutable();
 148
 149     DEF_DATA_TABLE_DEF = def;
 150
 151   }
 152
 153 }
 154
                                                                                                                                                                                                             |                                                                       
 
 
 
 
 
                                                                                   Popular Tags                                                                                                                                                                                              |