Public Member Functions | |
DatabaseSchema () | |
DatabaseSchema (int nbOfTables) | |
DatabaseSchema (DatabaseSchema schema) | |
void | addTable (DatabaseTable table) |
void | addProcedure (DatabaseProcedure procedure) |
void | removeTable (DatabaseTable table) |
void | removeProcedure (DatabaseProcedure procedure) |
void | mergeSchema (DatabaseSchema databaseSchema) throws SQLException |
ArrayList | getTables () |
ArrayList | getProcedures () |
DatabaseTable | getTable (String tableName) |
DatabaseProcedure | getProcedure (String procedureName) |
DatabaseTable | getTable (String tableName, boolean isCaseSensitive) |
boolean | hasTable (String tableName) |
boolean | hasProcedure (String procedureName) |
boolean | isCompatibleSubset (DatabaseSchema other) |
boolean | isCompatibleWith (DatabaseSchema other) |
boolean | equals (Object other) |
String | getXml () |
DatabaseSchema
describes all the tables and columns of a database.
Definition at line 41 of file DatabaseSchema.java.
|
Creates a new Definition at line 51 of file DatabaseSchema.java. 00052 { 00053 tables = new ArrayList(); 00054 procedures = new ArrayList(); 00055 }
|
|
Creates a new
Definition at line 63 of file DatabaseSchema.java. 00064 { 00065 tables = new ArrayList(nbOfTables); 00066 procedures = new ArrayList(); 00067 }
|
|
Creates a new
Definition at line 75 of file DatabaseSchema.java. References org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.getProcedures(), and org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.getTables(). 00076 { 00077 if (schema == null) 00078 throw new IllegalArgumentException( 00079 "Illegal null database schema in DatabaseSchema(DatabaseSchema) constructor"); 00080 00081 tables = new ArrayList(schema.getTables()); 00082 procedures = new ArrayList(schema.getProcedures()); 00083 }
|
|
Adds a
Definition at line 104 of file DatabaseSchema.java. Referenced by org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.mergeSchema(). 00105 { 00106 if (procedure == null) 00107 throw new IllegalArgumentException( 00108 "Illegal null database table in addTable(DatabaseTable) method"); 00109 procedures.add(procedure); 00110 }
|
|
Adds a
Definition at line 90 of file DatabaseSchema.java. Referenced by org.objectweb.cjdbc.common.sql.schema.DatabaseSQLMetaData.createDatabaseSchema(), org.objectweb.cjdbc.controller.loadbalancer.tasks.WriteRequestWithKeysTask.executeTask(), org.objectweb.cjdbc.controller.loadbalancer.tasks.WriteRequestTask.executeTask(), and org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.mergeSchema(). 00091 { 00092 if (table == null) 00093 throw new IllegalArgumentException( 00094 "Illegal null database table in addTable(DatabaseTable) method"); 00095 tables.add(table); 00096 }
|
|
Two
Definition at line 410 of file DatabaseSchema.java. References org.objectweb.cjdbc.common.sql.schema.DatabaseProcedure.equals(), org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.getProcedures(), and org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.getTables(). Referenced by org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.equals(). 00411 { 00412 boolean equal = true; 00413 if ((other == null) || !(other instanceof DatabaseSchema)) 00414 return false; 00415 if (tables == null) 00416 equal &= ((DatabaseSchema) other).getTables() == null; 00417 else 00418 equal &= tables.equals(((DatabaseSchema) other).getTables()); 00419 if (procedures == null) 00420 equal &= ((DatabaseSchema) other).getProcedures() == null; 00421 else 00422 equal &= procedures.equals(((DatabaseSchema) other).getProcedures()); 00423 return equal; 00424 }
|
|
Returns the
Definition at line 238 of file DatabaseSchema.java. References org.objectweb.cjdbc.common.sql.schema.DatabaseProcedure.getName(). Referenced by org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.isCompatibleSubset(), org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.isCompatibleWith(), and org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.mergeSchema(). 00239 { 00240 if (procedureName == null) 00241 return null; 00242 00243 DatabaseProcedure t; 00244 int size = procedures.size(); 00245 for (int i = 0; i < size; i++) 00246 { 00247 t = (DatabaseProcedure) procedures.get(i); 00248 if (procedureName.compareTo(t.getName()) == 0) 00249 return t; 00250 } 00251 return null; 00252 }
|
|
Returns an
Definition at line 203 of file DatabaseSchema.java. Referenced by org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.DatabaseSchema(), org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.equals(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseDynamicMetaData.getProcedureColumns(), and org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseDynamicMetaData.getProcedures(). 00204 {
00205 return procedures;
00206 }
|
|
Returns the
Definition at line 263 of file DatabaseSchema.java. References org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getName(), and org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.getTable(). 00264 { 00265 if (isCaseSensitive) 00266 return getTable(tableName); 00267 00268 if (tableName == null) 00269 return null; 00270 00271 DatabaseTable t; 00272 int size = tables.size(); 00273 for (int i = 0; i < size; i++) 00274 { 00275 t = (DatabaseTable) tables.get(i); 00276 if (tableName.equalsIgnoreCase(t.getName())) 00277 return t; 00278 } 00279 return null; 00280 }
|
|
|
Returns an
Definition at line 192 of file DatabaseSchema.java. Referenced by org.objectweb.cjdbc.controller.cache.result.schema.CacheDatabaseSchema.CacheDatabaseSchema(), org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.DatabaseSchema(), org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.equals(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseDynamicMetaData.getColumns(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseDynamicMetaData.getPrimaryKeys(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseDynamicMetaData.getTablePrivileges(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseDynamicMetaData.getTables(), org.objectweb.cjdbc.controller.cache.result.schema.CacheDatabaseSchema.mergeSchema(), and org.objectweb.cjdbc.controller.scheduler.schema.SchedulerDatabaseSchema.SchedulerDatabaseSchema(). 00193 {
00194 return tables;
00195 }
|
|
Get xml information about this schema.
Definition at line 431 of file DatabaseSchema.java. 00432 { 00433 StringBuffer info = new StringBuffer(); 00434 info.append("<" + DatabasesXmlTags.ELT_DatabaseStaticSchema + ">"); 00435 for (int i = 0; i < procedures.size(); i++) 00436 info.append(((DatabaseProcedure) procedures.get(i)).getXml()); 00437 for (int i = 0; i < tables.size(); i++) 00438 info.append(((DatabaseTable) tables.get(i)).getXml()); 00439 info.append("</" + DatabasesXmlTags.ELT_DatabaseStaticSchema + ">"); 00440 return info.toString(); 00441 }
|
|
Returns
Definition at line 312 of file DatabaseSchema.java. References org.objectweb.cjdbc.common.sql.schema.DatabaseProcedure.getName(). 00313 { 00314 if (procedureName == null) 00315 return false; 00316 00317 DatabaseProcedure t; 00318 int size = procedures.size(); 00319 for (int i = 0; i < size; i++) 00320 { 00321 t = (DatabaseProcedure) procedures.get(i); 00322 if (procedureName.equals(t.getName())) 00323 return true; 00324 } 00325 return false; 00326 }
|
|
Returns
Definition at line 289 of file DatabaseSchema.java. References org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getName(). Referenced by org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getDatabaseSchemaFromActiveBackendsAndRefreshDatabaseProductNames(). 00290 { 00291 if (tableName == null) 00292 return false; 00293 00294 DatabaseTable t; 00295 int size = tables.size(); 00296 for (int i = 0; i < size; i++) 00297 { 00298 t = (DatabaseTable) tables.get(i); 00299 if (tableName.equals(t.getName())) 00300 return true; 00301 } 00302 return false; 00303 }
|
|
Checks if this
Definition at line 336 of file DatabaseSchema.java. References org.objectweb.cjdbc.common.sql.schema.DatabaseProcedure.equals(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.equalsIgnoreType(), org.objectweb.cjdbc.common.sql.schema.DatabaseProcedure.getName(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getName(), org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.getProcedure(), and org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.getTable(). 00337 { 00338 if (other == null) 00339 return false; 00340 00341 DatabaseTable table, otherTable; 00342 int size = tables.size(); 00343 for (int i = 0; i < size; i++) 00344 { 00345 // Parse all tables 00346 table = (DatabaseTable) tables.get(i); 00347 otherTable = other.getTable(table.getName()); 00348 if (otherTable == null) 00349 return false; // Not present 00350 else if (!table.equalsIgnoreType(otherTable)) 00351 return false; // Not compatible 00352 } 00353 DatabaseProcedure procedure, otherProcedure; 00354 int sizep = procedures.size(); 00355 for (int i = 0; i < sizep; i++) 00356 { 00357 // Parse all procedures 00358 procedure = (DatabaseProcedure) procedures.get(i); 00359 otherProcedure = other.getProcedure(procedure.getName()); 00360 if (otherProcedure == null) 00361 return false; // Not present 00362 else if (!procedure.equals(otherProcedure)) 00363 return false; // Not compatible 00364 } 00365 return true; // Ok, all tables passed the test 00366 }
|
|
Checks if this
Definition at line 376 of file DatabaseSchema.java. References org.objectweb.cjdbc.common.sql.schema.DatabaseProcedure.equals(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.equalsIgnoreType(), org.objectweb.cjdbc.common.sql.schema.DatabaseProcedure.getName(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getName(), org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.getProcedure(), and org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.getTable(). 00377 { 00378 DatabaseTable table, otherTable; 00379 int size = tables.size(); 00380 for (int i = 0; i < size; i++) 00381 { // Parse all tables 00382 table = (DatabaseTable) tables.get(i); 00383 otherTable = other.getTable(table.getName()); 00384 if (otherTable == null) 00385 continue; // Not present in other schema 00386 else if (!table.equalsIgnoreType(otherTable)) 00387 return false; // Not compatible 00388 } 00389 DatabaseProcedure procedure, otherProcedure; 00390 int sizep = procedures.size(); 00391 for (int i = 0; i < sizep; i++) 00392 { // Parse all procedures 00393 procedure = (DatabaseProcedure) procedures.get(i); 00394 otherProcedure = other.getProcedure(procedure.getName()); 00395 if (otherProcedure == null) 00396 continue; // Not present 00397 else if (!procedure.equals(otherProcedure)) 00398 return false; // Not compatible 00399 } 00400 return true; // Ok, all tables passed the test 00401 }
|
|
Merges the given schema with the current one. All missing tables or columns are added if no conflict is detected. An exception is thrown if the given schema definition conflicts with the current one.
Definition at line 147 of file DatabaseSchema.java. References org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.addProcedure(), org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.addTable(), org.objectweb.cjdbc.common.sql.schema.DatabaseProcedure.getName(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getName(), org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.getProcedure(), org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.getTable(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.mergeColumns(), and org.objectweb.cjdbc.common.sql.schema.DatabaseProcedure.mergeParameters(). Referenced by org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getDatabaseSchemaFromActiveBackendsAndRefreshDatabaseProductNames(). 00148 { 00149 if (databaseSchema == null) 00150 throw new IllegalArgumentException( 00151 "Illegal null database schema in mergeSchema(DatabaseSchema) method"); 00152 00153 ArrayList otherTables = databaseSchema.getTables(); 00154 if (otherTables.size() == 0) 00155 return; 00156 00157 DatabaseTable table, originalTable; 00158 int size = otherTables.size(); 00159 for (int i = 0; i < size; i++) 00160 { 00161 table = (DatabaseTable) otherTables.get(i); 00162 originalTable = getTable(table.getName()); 00163 if (originalTable == null) 00164 addTable(table); 00165 else 00166 originalTable.mergeColumns(table); 00167 } 00168 00169 ArrayList otherProcedures = databaseSchema.getProcedures(); 00170 if (otherProcedures.size() == 0) 00171 return; 00172 00173 DatabaseProcedure procedure, originalProcedure; 00174 int sizep = otherProcedures.size(); 00175 for (int i = 0; i < sizep; i++) 00176 { 00177 procedure = (DatabaseProcedure) otherProcedures.get(i); 00178 originalProcedure = getProcedure(procedure.getName()); 00179 if (originalProcedure == null) 00180 addProcedure(procedure); 00181 else 00182 originalProcedure.mergeParameters(procedure); 00183 } 00184 }
|
|
removes a
Definition at line 131 of file DatabaseSchema.java. 00132 { 00133 if (procedure == null) 00134 throw new IllegalArgumentException( 00135 "Illegal null database procedure in removeProcedure(DatabaseProcedure) method"); 00136 procedures.remove(procedure); 00137 }
|
|
Removes a
Definition at line 117 of file DatabaseSchema.java. Referenced by org.objectweb.cjdbc.controller.loadbalancer.tasks.WriteRequestWithKeysTask.executeTask(), org.objectweb.cjdbc.controller.loadbalancer.tasks.WriteRequestTask.executeTask(), and org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getDatabaseSchemaFromActiveBackendsAndRefreshDatabaseProductNames(). 00118 { 00119 if (table == null) 00120 throw new IllegalArgumentException( 00121 "Illegal null database table in removeTable(DatabaseTable) method"); 00122 tables.remove(table); 00123 }
|