User: obo Date: 2006/07/10 07:18:21 Modified: dba/connectivity/qa/connectivity/tools/HsqlTableDescriptor.java
Log: INTEGRATION: CWS qiq (1.2.54); FILE MERGED 2006/06/29 10:17:07 fs 1.2.54.3: attributes of HsqlColumnDescriptor not public anymore 2006/06/27 20:22:10 fs 1.2.54.2: creating a primary key via SDBCX not yet implementeed 2006/06/27 20:13:51 fs 1.2.54.1: addedconversion to SDBCX Table Descriptor File Changes: Directory: /dba/connectivity/qa/connectivity/tools/ =================================================== File [changed]: HsqlTableDescriptor.java Url: http://dba.openoffice.org/source/browse/dba/connectivity/qa/connectivity/tools/HsqlTableDescriptor.java?r1=1.2&r2=1.3 Delta lines: +52 -3 -------------------- --- HsqlTableDescriptor.java 6 Feb 2006 16:43:25 -0000 1.2 +++ HsqlTableDescriptor.java 10 Jul 2006 14:18:19 -0000 1.3 @@ -35,6 +35,15 @@ package connectivity.tools; +import com.sun.star.beans.XPropertySet; +import com.sun.star.container.XNameAccess; +import com.sun.star.sdbc.ColumnValue; +import com.sun.star.sdbc.XConnection; +import com.sun.star.sdbcx.XColumnsSupplier; +import com.sun.star.sdbcx.XDataDescriptorFactory; +import com.sun.star.sdbcx.XTablesSupplier; +import com.sun.star.uno.UnoRuntime; + /** is a very simply descriptor of a HSQL table, to be used with a HsqlDatabase.createTable method */ public class HsqlTableDescriptor @@ -61,5 +70,45 @@ public HsqlColumnDescriptor[] getColumns() { return m_columns; + } + + public XPropertySet createSdbcxDescriptor( XConnection _forConnection ) + { + XTablesSupplier suppTables = (XTablesSupplier)UnoRuntime.queryInterface( + XTablesSupplier.class, _forConnection ); + XDataDescriptorFactory tableDescFac = (XDataDescriptorFactory)UnoRuntime.queryInterface( + XDataDescriptorFactory.class, suppTables.getTables() ); + XPropertySet tableDesc = tableDescFac.createDataDescriptor(); + + try + { + tableDesc.setPropertyValue( "Name", getName() ); + } + catch ( Exception e ) { e.printStackTrace( System.err ); } + + XColumnsSupplier suppDescCols = (XColumnsSupplier)UnoRuntime.queryInterface( + XColumnsSupplier.class, tableDesc ); + + XNameAccess descColumns = suppDescCols.getColumns(); + XDataDescriptorFactory columnDescFac = (XDataDescriptorFactory)UnoRuntime.queryInterface( + XDataDescriptorFactory.class, descColumns ); + + HsqlColumnDescriptor[] myColumns = getColumns(); + for ( int i = 0; i < myColumns.length; ++i ) + { + XPropertySet columnDesc = columnDescFac.createDataDescriptor(); + try + { + columnDesc.setPropertyValue( "Name", myColumns[i].getName() ); + columnDesc.setPropertyValue( "IsNullable", new Integer( myColumns[i].isRequired() ? ColumnValue.NO_NULLS : ColumnValue.NULLABLE) ); + columnDesc.setPropertyValue( "TypeName", myColumns[i].getTypeName() ); + if ( myColumns[i].isPrimaryKey() || myColumns[i].isForeignKey() ) + // not yet implemented + throw new java.lang.UnsupportedOperationException("creating a primary or foreign key via SDBCX not yet implemented" ); + } + catch( com.sun.star.uno.Exception e ) { e.printStackTrace( System.err ); } + } + + return tableDesc; } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
