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]

Reply via email to