クラス org.objectweb.cjdbc.common.sql.schema.DatabaseTable

すべてのメンバ一覧

説明

A DatabaseTable represents a database table ! It is just an array of TableColumns objects.

Keep it mind that ArrayList is not synchronized...

作者:
Emmanuel Cecchet

Mathieu Peltier

Sara Bouchenak

バージョン:
1.0

DatabaseTable.java45 行で定義されています。

Public メソッド

 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 ()

Private メソッド

 DatabaseTable (String name, ArrayList columns)

Private 変数

String name
ArrayList columns


コンストラクタとデストラクタ

org.objectweb.cjdbc.common.sql.schema.DatabaseTable.DatabaseTable String  name  ) 
 

Creates a new DatabaseTable instance.

引数:
name table name
DatabaseTable.java58 行で定義されています。
00059 { 00060 this(name, new ArrayList()); 00061 }

org.objectweb.cjdbc.common.sql.schema.DatabaseTable.DatabaseTable String  name,
int  nbOfColumns
 

Creates a new DatabaseTable instance.

引数:
name table name
nbOfColumns number of columns
DatabaseTable.java69 行で定義されています。
00070 { 00071 this(name, new ArrayList(nbOfColumns)); 00072 }

org.objectweb.cjdbc.common.sql.schema.DatabaseTable.DatabaseTable String  name,
ArrayList  columns
[private]
 

Creates a new DatabaseTable instance.

引数:
name table name
columns columns list
DatabaseTable.java80 行で定義されています。
00081 { 00082 if (name == null) 00083 throw new IllegalArgumentException("Illegal null database table name in DatabaseTable constructor"); 00084 00085 this.name = name; 00086 this.columns = columns; 00087 }


メソッド

void org.objectweb.cjdbc.common.sql.schema.DatabaseTable.addColumn DatabaseColumn  column  ) 
 

Adds a DatabaseColumn object to this table.

Warning! The underlying ArrayList is not synchronized.

引数:
column a DatabaseColumn value
DatabaseTable.java106 行で定義されています。

参照先 org.objectweb.cjdbc.common.sql.schema.DatabaseTable.columns.

参照元 org.objectweb.cjdbc.common.sql.schema.DatabaseTable.mergeColumns().

00107 { 00108 columns.add(column); 00109 }

boolean org.objectweb.cjdbc.common.sql.schema.DatabaseTable.equals Object  other  ) 
 

Two DatabaseColumn are considered equal if they have the same name and the same columns.

引数:
other the object to compare with
戻り値:
true if the tables are equal
DatabaseTable.java259 行で定義されています。

参照先 org.objectweb.cjdbc.common.sql.schema.DatabaseTable.columns, org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getColumns(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getName(), と org.objectweb.cjdbc.common.sql.schema.DatabaseTable.name.

参照元 org.objectweb.cjdbc.common.sql.schema.AliasedDatabaseTable.equals().

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 }

boolean org.objectweb.cjdbc.common.sql.schema.DatabaseTable.equalsIgnoreType Object  other  ) 
 

This function is the same as equals but ignores the column type.

引数:
other the object to compare with
戻り値:
true if the table are equal ignoring the columns type
参照:
equals(Object)
DatabaseTable.java276 行で定義されています。

参照先 org.objectweb.cjdbc.common.sql.schema.DatabaseTable.columns, org.objectweb.cjdbc.common.sql.schema.DatabaseColumn.equalsIgnoreType(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getColumn(), org.objectweb.cjdbc.common.sql.schema.DatabaseColumn.getName(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getName(), と org.objectweb.cjdbc.common.sql.schema.DatabaseTable.name.

参照元 org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.isCompatibleSubset(), と 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 }

DatabaseColumn org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getColumn String  columnName,
boolean  isCaseSensitive
 

Returns the DatabaseColumn object matching the given column name or null if not found (the case can be enforced).

引数:
columnName column name to look for
isCaseSensitive true if name matching must be case sensitive
戻り値:
a DatabaseColumn value or null
DatabaseTable.java236 行で定義されています。

参照先 org.objectweb.cjdbc.common.sql.schema.DatabaseTable.columns, org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getColumn(), と 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 }

DatabaseColumn org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getColumn String  columnName  ) 
 

Returns the DatabaseColumn object matching the given column name or null if not found (the case is ignored).

引数:
columnName column name to look for
戻り値:
a DatabaseColumn value or null
DatabaseTable.java215 行で定義されています。

参照先 org.objectweb.cjdbc.common.sql.schema.DatabaseTable.columns, と org.objectweb.cjdbc.common.sql.schema.DatabaseColumn.getName().

参照元 org.objectweb.cjdbc.common.sql.schema.DatabaseTable.equalsIgnoreType(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getColumn(), org.objectweb.cjdbc.common.sql.SelectRequest.getSelectedColumns(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.mergeColumns(), org.objectweb.cjdbc.common.sql.UpdateRequest.parse(), org.objectweb.cjdbc.common.sql.InsertRequest.parse(), と 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 }

ArrayList org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getColumns  ) 
 

Returns a list of DatabaseColumn objects describing the columns of this table.

Warning! The underlying ArrayList is not synchronized.

戻り値:
an ArrayList of DatabaseColumn
DatabaseTable.java179 行で定義されています。

参照先 org.objectweb.cjdbc.common.sql.schema.DatabaseTable.columns.

参照元 org.objectweb.cjdbc.controller.cache.result.schema.CacheDatabaseTable.CacheDatabaseTable(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.equals(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseMetaData.getColumns(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseMetaData.getPrimaryKeys(), org.objectweb.cjdbc.common.sql.SelectRequest.getSelectedColumns(), org.objectweb.cjdbc.common.sql.SelectRequest.getWhereColumns(), org.objectweb.cjdbc.common.sql.DeleteRequest.getWhereColumns(), org.objectweb.cjdbc.common.sql.UpdateRequest.parse(), と org.objectweb.cjdbc.common.sql.InsertRequest.parse().

00180 { 00181 return columns; 00182 }

String org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getName  ) 
 

Gets the name of the table.

戻り値:
the table name
DatabaseTable.java94 行で定義されています。

参照先 org.objectweb.cjdbc.common.sql.schema.DatabaseTable.name.

参照元 org.objectweb.cjdbc.controller.cache.result.schema.CacheDatabaseTable.CacheDatabaseTable(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.equals(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.equalsIgnoreType(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseMetaData.getColumns(), org.objectweb.cjdbc.common.sql.SelectRequest.getFromTables(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseMetaData.getPrimaryKeys(), org.objectweb.cjdbc.common.sql.SelectRequest.getSelectedColumns(), org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.getTable(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseMetaData.getTablePrivileges(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseMetaData.getTables(), org.objectweb.cjdbc.common.sql.SelectRequest.getWhereColumns(), org.objectweb.cjdbc.common.sql.DeleteRequest.getWhereColumns(), org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.hasTable(), org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.isCompatibleSubset(), org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.isCompatibleWith(), org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.mergeSchema(), org.objectweb.cjdbc.common.sql.UpdateRequest.parse(), org.objectweb.cjdbc.common.sql.InsertRequest.parse(), org.objectweb.cjdbc.common.sql.DropRequest.parse(), と org.objectweb.cjdbc.controller.scheduler.schema.SchedulerDatabaseTable.SchedulerDatabaseTable().

00095 { 00096 return name; 00097 }

ArrayList org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getUniqueColumns  ) 
 

Returns a list of DatabaseColumn objects representing the unique columns of this table.

Warning! The underlying ArrayList is not synchronized.

戻り値:
an ArrayList of DatabaseColumn objects
DatabaseTable.java193 行で定義されています。

参照先 org.objectweb.cjdbc.common.sql.schema.DatabaseTable.columns, と 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 }

String org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getXml  ) 
 

Get xml information about this table.

戻り値:
xml formatted information on this database table.
DatabaseTable.java303 行で定義されています。

参照先 org.objectweb.cjdbc.common.sql.schema.DatabaseTable.columns, と org.objectweb.cjdbc.common.sql.schema.DatabaseTable.name.

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 }

void org.objectweb.cjdbc.common.sql.schema.DatabaseTable.mergeColumns DatabaseTable  table  )  throws SQLException
 

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.

引数:
table the table to merge
例外:
SQLException if the schemas conflict
DatabaseTable.java143 行で定義されています。

参照先 org.objectweb.cjdbc.common.sql.schema.DatabaseTable.addColumn(), org.objectweb.cjdbc.common.sql.schema.DatabaseColumn.equalsIgnoreType(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getColumn(), と org.objectweb.cjdbc.common.sql.schema.DatabaseColumn.getName().

参照元 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 tables: column '" 00165 + c.getName() 00166 + "' definition mismatch"); 00167 } 00168 } 00169 }

void org.objectweb.cjdbc.common.sql.schema.DatabaseTable.remove DatabaseColumn  column  ) 
 

Drops a DatabaseColumn object from this table.

Warning! The underlying ArrayList is not synchronized.

引数:
column a DatabaseColumn value
DatabaseTable.java130 行で定義されています。

参照先 org.objectweb.cjdbc.common.sql.schema.DatabaseTable.columns.

00131 { 00132 columns.remove(column); 00133 }

void org.objectweb.cjdbc.common.sql.schema.DatabaseTable.remove String  columnName  ) 
 

Drops a DatabaseColumn object from this table.

Warning! The underlying ArrayList is not synchronized.

引数:
columnName a String that maps to a DatabaseColumn value
DatabaseTable.java118 行で定義されています。

参照先 org.objectweb.cjdbc.common.sql.schema.DatabaseTable.columns, と org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getColumn().

00119 { 00120 columns.remove(getColumn(columnName)); 00121 }


変数

ArrayList org.objectweb.cjdbc.common.sql.schema.DatabaseTable.columns [private]
 

ArrayList of DatabaseColumn. DatabaseTable.java51 行で定義されています。

参照元 org.objectweb.cjdbc.common.sql.schema.DatabaseTable.addColumn(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.equals(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.equalsIgnoreType(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getColumn(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getColumns(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getUniqueColumns(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getXml(), と org.objectweb.cjdbc.common.sql.schema.DatabaseTable.remove().

String org.objectweb.cjdbc.common.sql.schema.DatabaseTable.name [private]
 

Database table name. DatabaseTable.java48 行で定義されています。

参照元 org.objectweb.cjdbc.common.sql.schema.DatabaseTable.equals(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.equalsIgnoreType(), org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getName(), と org.objectweb.cjdbc.common.sql.schema.DatabaseTable.getXml().


このクラスの説明は次のファイルから生成されました:
CJDBCversion1.0.4に対してTue Oct 12 15:16:19 2004に生成されました。 doxygen 1.3.8