diff options
author | Noel Grandin <noel@peralex.com> | 2012-09-18 09:46:34 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2012-09-27 15:03:32 +0200 |
commit | 9c00e38b431b57c3760f6c0aa774424b3239eeda (patch) | |
tree | bfe1bdd57d15eafb617028243cf4ea892016a137 /extensions | |
parent | 8c20367a2e6d61f830f6dc336761909e38a6bcca (diff) |
fdo#46808, Adapt sdb::DatabaseContext UNO service to new style
Create a merged XDatabaseContext interface for this service to implement.
Which is backwards-compatible, but does not require creating a new service.
Quite a few IDL files had to be marked as published for this to work.
Change-Id: Ie9a0da88d8c33cc83fc9d2334ff83ab2744c222f
Diffstat (limited to 'extensions')
-rw-r--r-- | extensions/source/abpilot/datasourcehandling.cxx | 16 | ||||
-rw-r--r-- | extensions/source/bibliography/bibconfig.cxx | 16 | ||||
-rw-r--r-- | extensions/source/bibliography/datman.cxx | 7 | ||||
-rw-r--r-- | extensions/source/dbpilots/controlwizard.cxx | 12 |
4 files changed, 23 insertions, 28 deletions
diff --git a/extensions/source/abpilot/datasourcehandling.cxx b/extensions/source/abpilot/datasourcehandling.cxx index 2c45e5e8cc7d..c91b480f53a1 100644 --- a/extensions/source/abpilot/datasourcehandling.cxx +++ b/extensions/source/abpilot/datasourcehandling.cxx @@ -38,6 +38,7 @@ #include <com/sun/star/lang/XComponent.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/lang/XSingleServiceFactory.hpp> +#include <com/sun/star/sdb/DatabaseContext.hpp> #include <com/sun/star/sdb/SQLContext.hpp> #include <com/sun/star/sdb/XCompletedConnection.hpp> #include <com/sun/star/sdb/XDatabaseRegistrations.hpp> @@ -77,22 +78,21 @@ namespace abp //===================================================================== //--------------------------------------------------------------------- - static Reference< XNameAccess > lcl_getDataSourceContext( const Reference< XMultiServiceFactory >& _rxORB ) SAL_THROW (( Exception )) + static Reference< XDatabaseContext > lcl_getDataSourceContext( const Reference< XComponentContext >& _rxContext ) SAL_THROW (( Exception )) { - Reference< XNameAccess > xContext( _rxORB->createInstance( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.sdb.DatabaseContext" )) ), UNO_QUERY ); - DBG_ASSERT(xContext.is(), "lcl_getDataSourceContext: could not access the data source context!"); + Reference<XDatabaseContext> xContext = DatabaseContext::create(_rxContext); return xContext; } //--------------------------------------------------------------------- /// creates a new data source and inserts it into the context static void lcl_implCreateAndInsert( - const Reference< XMultiServiceFactory >& _rxORB, const ::rtl::OUString& _rName, + const Reference< XComponentContext >& _rxContext, const ::rtl::OUString& _rName, Reference< XPropertySet >& /* [out] */ _rxNewDataSource ) SAL_THROW (( ::com::sun::star::uno::Exception )) { //............................................................. // get the data source context - Reference< XNameAccess > xContext = lcl_getDataSourceContext( _rxORB ); + Reference< XDatabaseContext > xContext = lcl_getDataSourceContext( _rxContext ); DBG_ASSERT( !xContext->hasByName( _rName ), "lcl_implCreateAndInsert: name already used!" ); (void)_rName; @@ -127,7 +127,7 @@ namespace abp { // create the new data source Reference< XPropertySet > xNewDataSource; - lcl_implCreateAndInsert( _rxORB, _rName, xNewDataSource ); + lcl_implCreateAndInsert( comphelper::ComponentContext(_rxORB).getUNOContext(), _rName, xNewDataSource ); //............................................................. // set the URL property @@ -200,7 +200,9 @@ namespace abp try { // create the UNO context - m_pImpl->xContext = lcl_getDataSourceContext( _rxORB ); + m_pImpl->xContext = Reference<XNameAccess>( + lcl_getDataSourceContext( comphelper::ComponentContext(_rxORB).getUNOContext() ), + UNO_QUERY_THROW); if (m_pImpl->xContext.is()) { diff --git a/extensions/source/bibliography/bibconfig.cxx b/extensions/source/bibliography/bibconfig.cxx index 652b4a5c01f9..c1696060e1f8 100644 --- a/extensions/source/bibliography/bibconfig.cxx +++ b/extensions/source/bibliography/bibconfig.cxx @@ -33,12 +33,14 @@ #include <com/sun/star/beans/PropertyValue.hpp> #include <com/sun/star/container/XNameAccess.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include <com/sun/star/sdb/DatabaseContext.hpp> #include <comphelper/processfactory.hxx> using namespace ::com::sun::star::uno; using namespace ::com::sun::star::beans; using namespace ::com::sun::star::container; using namespace ::com::sun::star::lang; +using namespace ::com::sun::star::sdb; using ::rtl::OUString; @@ -343,17 +345,9 @@ const Sequence<OUString>& DBChangeDialogConfig_Impl::GetDataSourceNames() { if(!aSourceNames.getLength()) { - Reference<XNameAccess> xDBContext; - Reference< XMultiServiceFactory > xMgr( ::comphelper::getProcessServiceFactory() ); - if( xMgr.is() ) - { - Reference<XInterface> xInstance = xMgr->createInstance( C2U( "com.sun.star.sdb.DatabaseContext" )); - xDBContext = Reference<XNameAccess>(xInstance, UNO_QUERY) ; - } - if(xDBContext.is()) - { - aSourceNames = xDBContext->getElementNames(); - } + Reference< XComponentContext > xContext( ::comphelper::getProcessComponentContext() ); + Reference<XDatabaseContext> xDBContext = DatabaseContext::create(xContext); + aSourceNames = xDBContext->getElementNames(); } return aSourceNames; } diff --git a/extensions/source/bibliography/datman.cxx b/extensions/source/bibliography/datman.cxx index 2b04564d3538..05628020b236 100644 --- a/extensions/source/bibliography/datman.cxx +++ b/extensions/source/bibliography/datman.cxx @@ -41,6 +41,7 @@ #include <com/sun/star/uno/XNamingService.hpp> #include <com/sun/star/sdbc/XDataSource.hpp> #include <com/sun/star/sdb/CommandType.hpp> +#include <com/sun/star/sdb/DatabaseContext.hpp> #include <com/sun/star/sdbcx/XTablesSupplier.hpp> #include <com/sun/star/sdbc/XConnection.hpp> #include <com/sun/star/sdb/XCompletedConnection.hpp> @@ -96,9 +97,9 @@ Reference< XConnection > getConnection(const ::rtl::OUString& _rURL) Reference< XDataSource > xDataSource; // is it a favorite title ? Reference< XMultiServiceFactory > xMgr = comphelper::getProcessServiceFactory(); - Reference<XInterface> xNamingContextIfc = xMgr->createInstance(C2U("com.sun.star.sdb.DatabaseContext")); - Reference< XNameAccess > xNamingContext(xNamingContextIfc, UNO_QUERY); - if (xNamingContext.is() && xNamingContext->hasByName(_rURL)) + Reference<XComponentContext> xContext = comphelper::getProcessComponentContext(); + Reference< XDatabaseContext > xNamingContext = DatabaseContext::create(xContext); + if (xNamingContext->hasByName(_rURL)) { DBG_ASSERT(Reference< XNamingService > (xNamingContext, UNO_QUERY).is(), "::getDataSource : no NamingService interface on the sdb::DatabaseAccessContext !"); try diff --git a/extensions/source/dbpilots/controlwizard.cxx b/extensions/source/dbpilots/controlwizard.cxx index abe80c4b535b..ba216b3d4451 100644 --- a/extensions/source/dbpilots/controlwizard.cxx +++ b/extensions/source/dbpilots/controlwizard.cxx @@ -30,6 +30,7 @@ #include <tools/debug.hxx> #include <com/sun/star/container/XNameAccess.hpp> #include <com/sun/star/sdbcx/XTablesSupplier.hpp> +#include <com/sun/star/sdb/DatabaseContext.hpp> #include <com/sun/star/sdb/XQueriesSupplier.hpp> #include <com/sun/star/sdbc/XPreparedStatement.hpp> #include <com/sun/star/container/XChild.hpp> @@ -41,6 +42,7 @@ #include <com/sun/star/sdb/CommandType.hpp> #include <com/sun/star/sdbc/SQLWarning.hpp> #include <com/sun/star/sdb/SQLContext.hpp> +#include <comphelper/componentcontext.hxx> #include <comphelper/types.hxx> #include <connectivity/dbtools.hxx> #include <vcl/msgbox.hxx> @@ -444,13 +446,9 @@ namespace dbp { DBG_ASSERT(xORB.is(), "OControlWizard::implGetDSContext: invalid service factory!"); - Reference< XInterface > xContext; - if (xORB.is()) - xContext = xORB->createInstance(::rtl::OUString("com.sun.star.sdb.DatabaseContext")); - DBG_ASSERT(xContext.is(), "OControlWizard::implGetDSContext: invalid database context!"); - - m_aContext.xDatasourceContext = Reference< XNameAccess >(xContext, UNO_QUERY); - DBG_ASSERT(m_aContext.xDatasourceContext.is() || !xContext.is(), "OControlWizard::implGetDSContext: invalid database context (missing the XNameAccess)!"); + m_aContext.xDatasourceContext = Reference<XNameAccess>( + DatabaseContext::create(comphelper::ComponentContext(xORB).getUNOContext()), + UNO_QUERY_THROW); } catch(const Exception&) { |