Tag: cws_src680_qiq User: fs Date: 2006/06/27 13:13:53 Modified: dba/connectivity/qa/connectivity/tools/HsqlTableDescriptor.java
Log: 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.2.54.1 Delta lines: +48 -2 -------------------- --- HsqlTableDescriptor.java 6 Feb 2006 16:43:25 -0000 1.2 +++ HsqlTableDescriptor.java 27 Jun 2006 20:13:51 -0000 1.2.54.1 @@ -4,9 +4,9 @@ * * $RCSfile: HsqlTableDescriptor.java,v $ * - * $Revision: 1.2 $ + * $Revision: 1.2.54.1 $ * - * last change: $Author: rt $ $Date: 2006/02/06 16:43:25 $ + * last change: $Author: fs $ $Date: 2006/06/27 20:13:51 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -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,42 @@ 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].Name ); + columnDesc.setPropertyValue( "IsNullable", new Integer( myColumns[i].NotNull ? ColumnValue.NO_NULLS : ColumnValue.NULLABLE) ); + columnDesc.setPropertyValue( "TypeName", myColumns[i].TypeName ); + } + catch( Exception e ) { e.printStackTrace( System.err ); } + } + + return tableDesc; } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
