summaryrefslogtreecommitdiff
path: root/dbaccess
diff options
context:
space:
mode:
authorMatúš Kukan <matus.kukan@gmail.com>2015-11-21 00:39:35 +0100
committerMatúš Kukan <matus.kukan@gmail.com>2015-12-05 15:12:54 +0100
commitf229b9b04a9267f7f277304c0ebed7f8b2582a5d (patch)
tree30db044e33e75bdeb005bbc8570dca40cd591c2e /dbaccess
parent970f518989d8984089a5ee2be95d0a178b314d4c (diff)
tdf#74608 dbaccess: Constructor feature for ODatabaseDocument
Change-Id: Id524a1a717c350cb0558ef5ff11da3e6c941c203
Diffstat (limited to 'dbaccess')
-rw-r--r--dbaccess/source/core/dataaccess/databasedocument.cxx66
-rw-r--r--dbaccess/source/core/dataaccess/databasedocument.hxx6
-rw-r--r--dbaccess/source/core/inc/services.hxx1
-rw-r--r--dbaccess/source/core/misc/services.cxx1
-rw-r--r--dbaccess/util/dba.component3
5 files changed, 22 insertions, 55 deletions
diff --git a/dbaccess/source/core/dataaccess/databasedocument.cxx b/dbaccess/source/core/dataaccess/databasedocument.cxx
index 3b07612b313e..e25b714c03b6 100644
--- a/dbaccess/source/core/dataaccess/databasedocument.cxx
+++ b/dbaccess/source/core/dataaccess/databasedocument.cxx
@@ -22,8 +22,6 @@
#include "datasource.hxx"
#include "databasedocument.hxx"
#include "dbastrings.hrc"
-#include "module_dba.hxx"
-#include "services.hxx"
#include "documenteventexecutor.hxx"
#include "databasecontext.hxx"
#include "documentcontainer.hxx"
@@ -52,7 +50,6 @@
#include <com/sun/star/task/XStatusIndicator.hpp>
#include <com/sun/star/task/XStatusIndicatorFactory.hpp>
#include <com/sun/star/ucb/SimpleFileAccess.hpp>
-#include <com/sun/star/ucb/XContent.hpp>
#include <com/sun/star/ui/UIConfigurationManager.hpp>
#include <com/sun/star/ui/XUIConfigurationStorage.hpp>
#include <com/sun/star/view/XSelectionSupplier.hpp>
@@ -111,11 +108,6 @@ using namespace ::com::sun::star::script;
using namespace ::com::sun::star::script::provider;
using namespace ::com::sun::star::ui;
using namespace ::cppu;
-using namespace ::osl;
-
-using ::com::sun::star::awt::XWindow;
-using ::com::sun::star::ucb::XContent;
-using ::com::sun::star::sdb::application::XDatabaseDocumentUI;
namespace dbaccess
{
@@ -147,17 +139,6 @@ bool ViewMonitor::onSetCurrentController( const Reference< XController >& _rxCon
return bLoadFinished;
}
-} // namespace dbaccess
-
-// ODatabaseDocument
-
-extern "C" void SAL_CALL createRegistryInfo_ODatabaseDocument()
-{
- static ::dba::OAutoRegistration< ::dbaccess::ODatabaseDocument > aAutoRegistration;
-}
-
-namespace dbaccess
-{
ODatabaseDocument::ODatabaseDocument(const ::rtl::Reference<ODatabaseModelImpl>& _pImpl )
:ModelDependentComponent( _pImpl )
@@ -611,7 +592,7 @@ namespace
{
bool lcl_hasAnyModifiedSubComponent_throw( const Reference< XController >& i_rController )
{
- Reference< XDatabaseDocumentUI > xDatabaseUI( i_rController, UNO_QUERY_THROW );
+ Reference< css::sdb::application::XDatabaseDocumentUI > xDatabaseUI( i_rController, UNO_QUERY_THROW );
Sequence< Reference< XComponent > > aComponents( xDatabaseUI->getSubComponents() );
const Reference< XComponent >* component = aComponents.getConstArray();
@@ -1900,37 +1881,14 @@ void SAL_CALL ODatabaseDocument::removeEventListener( const Reference< lang::XEv
}
// XServiceInfo
-OUString ODatabaseDocument::getImplementationName( ) throw(RuntimeException, std::exception)
-{
- return getImplementationName_static();
-}
-
-OUString ODatabaseDocument::getImplementationName_static( ) throw(RuntimeException)
+OUString ODatabaseDocument::getImplementationName() throw(RuntimeException, std::exception)
{
return OUString("com.sun.star.comp.dba.ODatabaseDocument");
}
-Sequence< OUString > ODatabaseDocument::getSupportedServiceNames( ) throw (RuntimeException, std::exception)
+Sequence< OUString > ODatabaseDocument::getSupportedServiceNames() throw (RuntimeException, std::exception)
{
- return getSupportedServiceNames_static();
-}
-
-Reference< XInterface > ODatabaseDocument::Create( const Reference< XComponentContext >& _rxContext )
-{
- Reference< XUnoTunnel > xDBContextTunnel( DatabaseContext::create(_rxContext), UNO_QUERY_THROW );
- ODatabaseContext* pContext = reinterpret_cast< ODatabaseContext* >( xDBContextTunnel->getSomething( ODatabaseContext::getUnoTunnelImplementationId() ) );
-
- ::rtl::Reference<ODatabaseModelImpl> pImpl( new ODatabaseModelImpl( _rxContext, *pContext ) );
- Reference< XModel > xModel( pImpl->createNewModel_deliverOwnership( false ) );
- return xModel.get();
-}
-
-Sequence< OUString > ODatabaseDocument::getSupportedServiceNames_static( ) throw (RuntimeException)
-{
- Sequence< OUString > aSNS( 2 );
- aSNS[0] = "com.sun.star.sdb.OfficeDatabaseDocument";
- aSNS[1] = "com.sun.star.document.OfficeDocument";
- return aSNS;
+ return { "com.sun.star.sdb.OfficeDatabaseDocument", "com.sun.star.document.OfficeDocument" };
}
sal_Bool ODatabaseDocument::supportsService( const OUString& _rServiceName ) throw (RuntimeException, std::exception)
@@ -2252,4 +2210,20 @@ OUString SAL_CALL ODatabaseDocument::getUntitledPrefix() throw (uno::RuntimeE
} // namespace dbaccess
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface* SAL_CALL
+com_sun_star_comp_dba_ODatabaseDocument(css::uno::XComponentContext* context,
+ css::uno::Sequence<css::uno::Any> const &)
+{
+ Reference<XUnoTunnel> xDBContextTunnel(DatabaseContext::create(context), UNO_QUERY_THROW);
+ dbaccess::ODatabaseContext* pContext = reinterpret_cast<dbaccess::ODatabaseContext*>(
+ xDBContextTunnel->getSomething(
+ dbaccess::ODatabaseContext::getUnoTunnelImplementationId()));
+
+ rtl::Reference<dbaccess::ODatabaseModelImpl> pImpl(
+ new dbaccess::ODatabaseModelImpl(context, *pContext));
+ css::uno::Reference<XInterface> inst(pImpl->createNewModel_deliverOwnership(false));
+ inst->acquire();
+ return inst.get();
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/core/dataaccess/databasedocument.hxx b/dbaccess/source/core/dataaccess/databasedocument.hxx
index 0212387a9fea..89d1b171e457 100644
--- a/dbaccess/source/core/dataaccess/databasedocument.hxx
+++ b/dbaccess/source/core/dataaccess/databasedocument.hxx
@@ -294,12 +294,6 @@ public:
virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw(css::uno::RuntimeException, std::exception) override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) throw(css::uno::RuntimeException, std::exception) override;
- // css::lang::XServiceInfo - static methods
- static css::uno::Sequence< OUString > getSupportedServiceNames_static() throw( css::uno::RuntimeException );
- static OUString getImplementationName_static() throw( css::uno::RuntimeException );
- static css::uno::Reference< css::uno::XInterface >
- SAL_CALL Create(const css::uno::Reference< css::uno::XComponentContext >&);
-
// XInterface
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type& _rType) throw (css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL acquire( ) throw () override;
diff --git a/dbaccess/source/core/inc/services.hxx b/dbaccess/source/core/inc/services.hxx
index 78c6913b57dd..4e40c488d66d 100644
--- a/dbaccess/source/core/inc/services.hxx
+++ b/dbaccess/source/core/inc/services.hxx
@@ -25,7 +25,6 @@
#include <sal/types.h>
extern "C" void SAL_CALL createRegistryInfo_DataAccessDescriptorFactory();
-extern "C" void SAL_CALL createRegistryInfo_ODatabaseDocument();
#endif
diff --git a/dbaccess/source/core/misc/services.cxx b/dbaccess/source/core/misc/services.cxx
index ca8b4c60258f..36242257c13c 100644
--- a/dbaccess/source/core/misc/services.cxx
+++ b/dbaccess/source/core/misc/services.cxx
@@ -58,7 +58,6 @@ extern "C" void SAL_CALL createRegistryInfo_DBA()
static bool bInit = false;
if (!bInit)
{
- createRegistryInfo_ODatabaseDocument();
createRegistryInfo_DataAccessDescriptorFactory();
bInit = true;
}
diff --git a/dbaccess/util/dba.component b/dbaccess/util/dba.component
index d39391229040..3a4ac355d889 100644
--- a/dbaccess/util/dba.component
+++ b/dbaccess/util/dba.component
@@ -37,7 +37,8 @@
<implementation name="com.sun.star.comp.dba.ODatabaseContext">
<service name="com.sun.star.sdb.DatabaseContext"/>
</implementation>
- <implementation name="com.sun.star.comp.dba.ODatabaseDocument">
+ <implementation name="com.sun.star.comp.dba.ODatabaseDocument"
+ constructor="com_sun_star_comp_dba_ODatabaseDocument">
<service name="com.sun.star.document.OfficeDocument"/>
<service name="com.sun.star.sdb.OfficeDatabaseDocument"/>
</implementation>