diff options
author | Kurt Zenker <kz@openoffice.org> | 2008-06-25 10:40:09 +0000 |
---|---|---|
committer | Kurt Zenker <kz@openoffice.org> | 2008-06-25 10:40:09 +0000 |
commit | fe151e0148e081781d21474bfdc577fff25207c0 (patch) | |
tree | 63003d9cf808d928aac4177bb7076bbda86554f6 /connectivity | |
parent | 99407545409a0e1581bc58d5c6b9bcd052123419 (diff) |
INTEGRATION: CWS dba30d (1.3.20); FILE MERGED
2008/05/22 11:25:38 fs 1.3.20.1: #i88576# +DataSource(String) / +getXDataSource / +getName
Diffstat (limited to 'connectivity')
-rw-r--r-- | connectivity/qa/connectivity/tools/DataSource.java | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/connectivity/qa/connectivity/tools/DataSource.java b/connectivity/qa/connectivity/tools/DataSource.java index 934eb7ef4e16..531ec70d2930 100644 --- a/connectivity/qa/connectivity/tools/DataSource.java +++ b/connectivity/qa/connectivity/tools/DataSource.java @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: DataSource.java,v $ - * $Revision: 1.3 $ + * $Revision: 1.4 $ * * This file is part of OpenOffice.org. * @@ -30,6 +30,7 @@ package connectivity.tools; +import com.sun.star.beans.UnknownPropertyException; import com.sun.star.container.ElementExistException; import com.sun.star.container.NoSuchElementException; import com.sun.star.container.XNameAccess; @@ -41,8 +42,11 @@ import com.sun.star.beans.XPropertySet; import com.sun.star.sdb.XQueryDefinitionsSupplier; import com.sun.star.sdbc.XDataSource; import com.sun.star.sdbcx.XTablesSupplier; +import com.sun.star.uno.Exception; import com.sun.star.uno.UnoRuntime; import com.sun.star.util.XRefreshable; +import java.util.logging.Level; +import java.util.logging.Logger; public class DataSource { @@ -50,12 +54,28 @@ public class DataSource XMultiServiceFactory m_orb; XDataSource m_dataSource; + public DataSource( XMultiServiceFactory _orb, String _registeredName ) throws Exception + { + m_orb = _orb; + + XNameAccess dbContext = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, + _orb.createInstance("com.sun.star.sdb.DatabaseContext")); + + m_dataSource = (XDataSource)UnoRuntime.queryInterface(XDataSource.class, + dbContext.getByName( _registeredName ) ); + } + public DataSource( XMultiServiceFactory _orb, XDataSource _dataSource ) { m_orb = _orb; m_dataSource = _dataSource; } + final public XDataSource getXDataSource() + { + return m_dataSource; + } + /** creates a query with a given name and SQL command */ public void createQuery( String _name, String _sqlCommand ) throws ElementExistException, WrappedTargetException, com.sun.star.lang.IllegalArgumentException @@ -125,4 +145,27 @@ public class DataSource XRefreshable.class, suppTables.getTables() ); refreshTables.refresh(); } + + /** returns the name of the data source + * + * If a data source is registered at the database context, the name is the registration + * name. Otherwise, its the URL which the respective database document is based on. + * + * Note that the above definition is from the UNO API, not from this wrapper here. + */ + public String getName() + { + String name = null; + try + { + XPropertySet dataSourceProps = (XPropertySet) UnoRuntime.queryInterface( + XPropertySet.class, m_dataSource ); + name = (String)dataSourceProps.getPropertyValue("Name"); + } + catch (Exception ex) + { + Logger.getLogger(DataSource.class.getName()).log(Level.SEVERE, null, ex); + } + return name; + } }; |