Tag: cws_dev300_dba31c
User: fs      
Date: 2008-09-12 18:54:55+0000
Modified:
   dba/connectivity/qa/connectivity/tools/HsqlDatabase.java

Log:
 #i93737# allow creating the object with an existing database document (given 
by URL)

File Changes:

Directory: /dba/connectivity/qa/connectivity/tools/
===================================================

File [changed]: HsqlDatabase.java
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/qa/connectivity/tools/HsqlDatabase.java?r1=1.5.16.2&r2=1.5.16.3
Delta lines:  +31 -6
--------------------
--- HsqlDatabase.java   2008-09-12 10:42:43+0000        1.5.16.2
+++ HsqlDatabase.java   2008-09-12 18:54:52+0000        1.5.16.3
@@ -7,7 +7,7 @@
  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: HsqlDatabase.java,v $
- * $Revision: 1.5.16.2 $
+ * $Revision: 1.5.16.3 $
  *
  * This file is part of OpenOffice.org.
  *
@@ -33,6 +33,7 @@
 import com.sun.star.beans.PropertyValue;
 import com.sun.star.beans.XPropertySet;
 import com.sun.star.container.ElementExistException;
+import com.sun.star.container.XNameAccess;
 import com.sun.star.frame.XStorable;
 import com.sun.star.frame.XModel;
 import com.sun.star.lang.XMultiServiceFactory;
@@ -45,9 +46,11 @@
 import com.sun.star.sdbcx.XTablesSupplier;
 import com.sun.star.uno.UnoRuntime;
 import com.sun.star.io.IOException;
+import com.sun.star.sdb.XDocumentDataSource;
 import java.io.File;
 
 import com.sun.star.util.CloseVetoException;
+import helper.URLHelper;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Set;
@@ -70,29 +73,51 @@
     // the default connection
     XConnection             m_connection;
 
-    /** Creates a new instance of HsqlDatabase */
+    // 
--------------------------------------------------------------------------------------------------------
     public HsqlDatabase( XMultiServiceFactory orb ) throws Exception
     {
         m_orb = orb;
         createDBDocument();
     }
 
+    // 
--------------------------------------------------------------------------------------------------------
+    public HsqlDatabase( XMultiServiceFactory orb, String _existingDocumentURL 
) throws Exception
+    {
+        m_orb = orb;
+        createDBDocument( _existingDocumentURL );
+    }
+
+    // 
--------------------------------------------------------------------------------------------------------
+    private void createDBDocument( String _docURL ) throws Exception
+    {
+        m_databaseDocumentFile = _docURL;
+
+        XNameAccess dbContext = (XNameAccess)UnoRuntime.queryInterface( 
XNameAccess.class,
+            m_orb.createInstance( "com.sun.star.sdb.DatabaseContext" ) );
+        XDocumentDataSource dataSource = 
(XDocumentDataSource)UnoRuntime.queryInterface( XDocumentDataSource.class,
+            dbContext.getByName( _docURL ) );
+
+        m_databaseDocument = dataSource.getDatabaseDocument();
+        m_dataSource = new DataSource( m_orb, 
m_databaseDocument.getDataSource() );
+    }
+
+    /** creates an empty database document in a temporary location
+     */
     private void createDBDocument() throws Exception
     {
-        m_databaseDocumentFile = new String();
         File documentFile = File.createTempFile("testdb",".odb");
         documentFile.deleteOnExit();
-
-        m_databaseDocumentFile = 
documentFile.getAbsoluteFile().toURL().toString();
+        m_databaseDocumentFile = URLHelper.getFileURLFromSystemPath( 
documentFile );
 
         m_databaseDocument = 
(XOfficeDatabaseDocument)UnoRuntime.queryInterface(
             XOfficeDatabaseDocument.class, m_orb.createInstance( 
"com.sun.star.sdb.OfficeDatabaseDocument" ) );
         m_dataSource = new DataSource( m_orb, 
m_databaseDocument.getDataSource() );
+
         XPropertySet dsProperties = (XPropertySet)UnoRuntime.queryInterface( 
XPropertySet.class, m_databaseDocument.getDataSource() );
         dsProperties.setPropertyValue("URL", "sdbc:embedded:hsqldb");
 
         XStorable storable = (XStorable)UnoRuntime.queryInterface( 
XStorable.class, m_databaseDocument );
-        storable.storeAsURL(m_databaseDocumentFile,new PropertyValue[]{});
+        storable.storeAsURL( m_databaseDocumentFile, new PropertyValue[]{} );
     }
 
     /** returns a connection to the database




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to