Public Member Functions | |
DatabaseTable (String name) | |
DatabaseTable (String name, int nbOfColumns) | |
String | getName () |
void | addColumn (DatabaseColumn column) |
void | remove (String columnName) |
void | remove (DatabaseColumn column) |
void | mergeColumns (DatabaseTable table) throws SQLException |
ArrayList | getColumns () |
ArrayList | getUniqueColumns () |
DatabaseColumn | getColumn (String columnName) |
DatabaseColumn | getColumn (String columnName, boolean isCaseSensitive) |
boolean | equals (Object other) |
boolean | equalsIgnoreType (Object other) |
String | getXml () |
DatabaseTable
represents a database table ! It is just an array of TableColumns
objects.
Keep it mind that ArrayList
is not synchronized...
Definition at line 45 of file DatabaseTable.java.
|
Creates a new
Definition at line 58 of file DatabaseTable.java. 00059 { 00060 this(name, new ArrayList()); 00061 }
|
|
Creates a new
Definition at line 69 of file DatabaseTable.java. 00070 { 00071 this(name, new ArrayList(nbOfColumns)); 00072 }
|
|
Adds a
Warning! The underlying
Definition at line 106 of file DatabaseTable.java. Referenced by org.objectweb.cjdbc.common.sql.schema.DatabaseTable.mergeColumns(). 00107 { 00108 columns.add(column); 00109 }
|
|
Two
Definition at line 259 of file DatabaseTable.java. References org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getColumns(), and org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getName(). Referenced by org.objectweb.cjdbc.common.sql.schema.AliasedDatabaseTable.equals(), and org.objectweb.cjdbc.common.sql.schema.DatabaseTable.equalsIgnoreType(). 00260 { 00261 if ((other == null) || !(other instanceof DatabaseTable)) 00262 return false; 00263 00264 DatabaseTable t = (DatabaseTable) other; 00265 return (t.getName().equals(name)) && (t.getColumns().equals(columns)); 00266 }
|
|
This function is the same as equals but ignores the column type.
Definition at line 276 of file DatabaseTable.java. References org.objectweb.cjdbc.common.sql.schema.DatabaseTable.equals(), org.objectweb.cjdbc.common.sql.schema.DatabaseColumn.equalsIgnoreType(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getColumn(), org.objectweb.cjdbc.common.sql.schema.DatabaseColumn.getName(), and org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getName(). Referenced by org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.isCompatibleSubset(), and org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.isCompatibleWith(). 00277 { 00278 if ((other == null) || !(other instanceof DatabaseTable)) 00279 return false; 00280 00281 DatabaseTable t = (DatabaseTable) other; 00282 if (!t.getName().equals(name)) 00283 return false; 00284 00285 DatabaseColumn c1, c2; 00286 Iterator iter = columns.iterator(); 00287 while (iter.hasNext()) 00288 { 00289 c1 = (DatabaseColumn) iter.next(); 00290 c2 = t.getColumn(c1.getName()); 00291 00292 if (!c1.equalsIgnoreType(c2)) 00293 return false; // Not compatible 00294 } 00295 return true; 00296 }
|
|
Returns the
Definition at line 236 of file DatabaseTable.java. References org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getColumn(), and org.objectweb.cjdbc.common.sql.schema.DatabaseColumn.getName(). 00237 { 00238 if (!isCaseSensitive) 00239 return getColumn(columnName); 00240 00241 DatabaseColumn c; 00242 for (Iterator i = columns.iterator(); i.hasNext();) 00243 { 00244 c = (DatabaseColumn) i.next(); 00245 if (columnName.equals(c.getName())) 00246 return c; 00247 00248 } 00249 return null; 00250 }
|
|
Returns the
Definition at line 215 of file DatabaseTable.java. References org.objectweb.cjdbc.common.sql.schema.DatabaseColumn.getName(). Referenced by org.objectweb.cjdbc.common.sql.schema.DatabaseTable.equalsIgnoreType(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getColumn(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.mergeColumns(), org.objectweb.cjdbc.common.sql.UpdateRequest.parse(), org.objectweb.cjdbc.common.sql.InsertRequest.parse(), and org.objectweb.cjdbc.common.sql.schema.DatabaseTable.remove(). 00216 { 00217 DatabaseColumn c; 00218 for (Iterator i = columns.iterator(); i.hasNext();) 00219 { 00220 c = (DatabaseColumn) i.next(); 00221 if (columnName.equalsIgnoreCase(c.getName())) 00222 return c; 00223 00224 } 00225 return null; 00226 }
|
|
Returns a list of
Warning! The underlying
Definition at line 179 of file DatabaseTable.java. Referenced by org.objectweb.cjdbc.controller.cache.result.schema.CacheDatabaseTable.CacheDatabaseTable(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.equals(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseDynamicMetaData.getColumns(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseDynamicMetaData.getPrimaryKeys(), org.objectweb.cjdbc.controller.cache.result.schema.CacheDatabaseTable.mergeColumns(), org.objectweb.cjdbc.common.sql.UpdateRequest.parse(), and org.objectweb.cjdbc.common.sql.InsertRequest.parse(). 00180 {
00181 return columns;
00182 }
|
|
|
Returns a list of
Warning! The underlying
Definition at line 193 of file DatabaseTable.java. References org.objectweb.cjdbc.common.sql.schema.DatabaseColumn.isUnique. 00194 { 00195 ArrayList cols = new ArrayList(); 00196 Iterator i; 00197 DatabaseColumn c; 00198 00199 for (i = columns.iterator(); i.hasNext();) 00200 { 00201 c = (DatabaseColumn) i.next(); 00202 if (c.isUnique()) 00203 cols.add(c); 00204 } 00205 return cols; 00206 }
|
|
Get xml information about this table.
Definition at line 303 of file DatabaseTable.java. 00304 { 00305 StringBuffer info = new StringBuffer(); 00306 info.append( 00307 "<" 00308 + DatabasesXmlTags.ELT_DatabaseTable 00309 + " " 00310 + DatabasesXmlTags.ATT_tableName 00311 + "=\"" 00312 + name 00313 + "\" " 00314 + DatabasesXmlTags.ATT_nbOfColumns 00315 + "=\"" 00316 + columns.size() 00317 + "\">"); 00318 for (int i = 0; i < columns.size(); i++) 00319 info.append(((DatabaseColumn) columns.get(i)).getXml()); 00320 info.append("</" + DatabasesXmlTags.ELT_DatabaseTable + ">"); 00321 return info.toString(); 00322 }
|
|
Merges this table with the given table's columns. All missing columns are added if no conflict is detected. An exception is thrown if the given table columns conflicts with this one.
Definition at line 143 of file DatabaseTable.java. References org.objectweb.cjdbc.common.sql.schema.DatabaseTable.addColumn(), org.objectweb.cjdbc.common.sql.schema.DatabaseColumn.equalsIgnoreType(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getColumn(), and org.objectweb.cjdbc.common.sql.schema.DatabaseColumn.getName(). Referenced by org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.mergeSchema(). 00144 { 00145 if (table == null) 00146 return; 00147 00148 ArrayList otherColumns = table.getColumns(); 00149 if (otherColumns == null) 00150 return; 00151 00152 DatabaseColumn c, original; 00153 int size = otherColumns.size(); 00154 for (int i = 0; i < size; i++) 00155 { 00156 c = (DatabaseColumn) otherColumns.get(i); 00157 original = getColumn(c.getName()); 00158 if (original == null) 00159 addColumn(c); 00160 else 00161 { 00162 if (!original.equalsIgnoreType(c)) 00163 throw new SQLException( 00164 "Unable to merge table ["+table.getName()+"]: column '" 00165 + c.getName() 00166 + "' definition mismatch"); 00167 } 00168 } 00169 }
|
|
Drops a
Warning! The underlying
Definition at line 130 of file DatabaseTable.java. 00131 { 00132 columns.remove(column); 00133 }
|
|
Drops a
Warning! The underlying
Definition at line 118 of file DatabaseTable.java. References org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getColumn(). 00119 { 00120 columns.remove(getColumn(columnName)); 00121 }
|