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 |