[Libreoffice-commits] core.git: sw/source sw/util

Chris Sherlock chris.sherlock at collabora.com
Wed Feb 25 07:27:25 PST 2015


 sw/source/core/inc/unofreg.hxx   |   53 ------
 sw/source/filter/xml/xmlexp.cxx  |  304 ++++++++++-----------------------------
 sw/source/filter/xml/xmlimp.cxx  |  158 +++++---------------
 sw/source/uibase/uno/unofreg.cxx |  122 ---------------
 sw/util/sw.component             |   45 +++--
 5 files changed, 157 insertions(+), 525 deletions(-)

New commits:
commit cd231286f4a54e4998ad9f5a24f65a91bac2a07d
Author: Chris Sherlock <chris.sherlock at collabora.com>
Date:   Mon Feb 23 11:41:59 2015 +1100

    sw: convert import & export components to constructor usage
    
    Change-Id: I15b64f874f72715cea04f656e1b883c6cf45a86c
    Signed-off-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/sw/source/core/inc/unofreg.hxx b/sw/source/core/inc/unofreg.hxx
index d404281..3e6a1f3 100644
--- a/sw/source/core/inc/unofreg.hxx
+++ b/sw/source/core/inc/unofreg.hxx
@@ -45,59 +45,6 @@ css::uno::Sequence< OUString > SAL_CALL SwGlobalDocument_getSupportedServiceName
 OUString SAL_CALL SwGlobalDocument_getImplementationName() throw();
 css::uno::Reference< css::uno::XInterface > SAL_CALL SwGlobalDocument_createInstance( const css::uno::Reference< css::lang::XMultiServiceFactory > &rSMgr ) throw( css::uno::Exception );
 
-// xml import
-css::uno::Sequence< OUString > SAL_CALL SwXMLImport_getSupportedServiceNames() throw();
-OUString SAL_CALL SwXMLImport_getImplementationName() throw();
-css::uno::Reference< css::uno::XInterface > SAL_CALL SwXMLImport_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory > & rSMgr)  throw( css::uno::Exception );
-css::uno::Sequence< OUString > SAL_CALL SwXMLImportStyles_getSupportedServiceNames() throw();
-OUString SAL_CALL SwXMLImportStyles_getImplementationName() throw();
-css::uno::Reference< css::uno::XInterface > SAL_CALL SwXMLImportStyles_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory > & rSMgr)    throw( css::uno::Exception );
-css::uno::Sequence< OUString > SAL_CALL SwXMLImportContent_getSupportedServiceNames() throw();
-OUString SAL_CALL SwXMLImportContent_getImplementationName() throw();
-css::uno::Reference< css::uno::XInterface > SAL_CALL SwXMLImportContent_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory > & rSMgr)   throw( css::uno::Exception );
-
-css::uno::Sequence< OUString > SAL_CALL     SwXMLImportMeta_getSupportedServiceNames() throw();
-OUString SAL_CALL     SwXMLImportMeta_getImplementationName() throw();
-css::uno::Reference< css::uno::XInterface > SAL_CALL SwXMLImportMeta_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory > & rSMgr)  throw( css::uno::Exception );
-
-css::uno::Sequence< OUString > SAL_CALL SwXMLImportSettings_getSupportedServiceNames() throw();
-OUString SAL_CALL SwXMLImportSettings_getImplementationName() throw();
-css::uno::Reference< css::uno::XInterface > SAL_CALL SwXMLImportSettings_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory > & rSMgr)  throw( css::uno::Exception );
-
-// xml export (OOo)
-css::uno::Sequence< OUString > SAL_CALL SwXMLExportOOO_getSupportedServiceNames() throw();
-OUString SAL_CALL SwXMLExportOOO_getImplementationName() throw();
-css::uno::Reference< css::uno::XInterface > SAL_CALL SwXMLExportOOO_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory > & rSMgr)   throw( css::uno::Exception );
-css::uno::Sequence< OUString > SAL_CALL SwXMLExportContentOOO_getSupportedServiceNames() throw();
-OUString SAL_CALL SwXMLExportContentOOO_getImplementationName() throw();
-css::uno::Reference< css::uno::XInterface > SAL_CALL SwXMLExportContentOOO_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory > & rSMgr)    throw( css::uno::Exception );
-css::uno::Sequence< OUString > SAL_CALL SwXMLExportStylesOOO_getSupportedServiceNames() throw();
-OUString SAL_CALL SwXMLExportStylesOOO_getImplementationName() throw();
-css::uno::Reference< css::uno::XInterface > SAL_CALL SwXMLExportStylesOOO_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory > & rSMgr) throw( css::uno::Exception );
-css::uno::Sequence< OUString > SAL_CALL SwXMLExportMetaOOO_getSupportedServiceNames() throw();
-OUString SAL_CALL SwXMLExportMetaOOO_getImplementationName() throw();
-css::uno::Reference< css::uno::XInterface > SAL_CALL SwXMLExportMetaOOO_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory > & rSMgr)   throw( css::uno::Exception );
-css::uno::Sequence< OUString > SAL_CALL SwXMLExportSettingsOOO_getSupportedServiceNames() throw();
-OUString SAL_CALL SwXMLExportSettingsOOO_getImplementationName() throw();
-css::uno::Reference< css::uno::XInterface > SAL_CALL SwXMLExportSettingsOOO_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory > & rSMgr)   throw( css::uno::Exception );
-
-// xml export (OASIS)
-css::uno::Sequence< OUString > SAL_CALL SwXMLExport_getSupportedServiceNames() throw();
-OUString SAL_CALL SwXMLExport_getImplementationName() throw();
-css::uno::Reference< css::uno::XInterface > SAL_CALL SwXMLExport_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory > & rSMgr)  throw( css::uno::Exception );
-css::uno::Sequence< OUString > SAL_CALL SwXMLExportContent_getSupportedServiceNames() throw();
-OUString SAL_CALL SwXMLExportContent_getImplementationName() throw();
-css::uno::Reference< css::uno::XInterface > SAL_CALL SwXMLExportContent_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory > & rSMgr)   throw( css::uno::Exception );
-css::uno::Sequence< OUString > SAL_CALL SwXMLExportStyles_getSupportedServiceNames() throw();
-OUString SAL_CALL SwXMLExportStyles_getImplementationName() throw();
-css::uno::Reference< css::uno::XInterface > SAL_CALL SwXMLExportStyles_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory > & rSMgr)    throw( css::uno::Exception );
-css::uno::Sequence< OUString > SAL_CALL SwXMLExportMeta_getSupportedServiceNames() throw();
-OUString SAL_CALL SwXMLExportMeta_getImplementationName() throw();
-css::uno::Reference< css::uno::XInterface > SAL_CALL SwXMLExportMeta_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory > & rSMgr)  throw( css::uno::Exception );
-css::uno::Sequence< OUString > SAL_CALL SwXMLExportSettings_getSupportedServiceNames() throw();
-OUString SAL_CALL SwXMLExportSettings_getImplementationName() throw();
-css::uno::Reference< css::uno::XInterface > SAL_CALL SwXMLExportSettings_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory > & rSMgr)  throw( css::uno::Exception );
-
 //API objects
 css::uno::Sequence< OUString > SAL_CALL SwXAutoTextContainer_getSupportedServiceNames() throw();
 OUString SAL_CALL SwXAutoTextContainer_getImplementationName() throw();
diff --git a/sw/source/filter/xml/xmlexp.cxx b/sw/source/filter/xml/xmlexp.cxx
index 1af695c..ba6c78e 100644
--- a/sw/source/filter/xml/xmlexp.cxx
+++ b/sw/source/filter/xml/xmlexp.cxx
@@ -500,271 +500,131 @@ void SwXMLExport::_ExportContent()
     GetTextParagraphExport()->exportText( xText, bShowProgress );
 }
 
-// uno component registration
-// helper functions for export service(s)
-
-// OOo
-OUString SAL_CALL SwXMLExportOOO_getImplementationName() throw()
-{
-    return OUString(
-        "com.sun.star.comp.Writer.XMLExporter" );
-}
-
-Sequence< OUString > SAL_CALL SwXMLExportOOO_getSupportedServiceNames()
-    throw()
-{
-    const OUString aServiceName(SwXMLExportOOO_getImplementationName());
-    const Sequence< OUString > aSeq( &aServiceName, 1 );
-    return aSeq;
-}
-
-Reference< XInterface > SAL_CALL SwXMLExportOOO_createInstance(
-        const Reference< XMultiServiceFactory > & rSMgr)
-    throw( Exception )
-{
-    return (cppu::OWeakObject*)new SwXMLExport( comphelper::getComponentContext(rSMgr), SwXMLExportOOO_getImplementationName(), SvXMLExportFlags::ALL);
-}
-
-OUString SAL_CALL SwXMLExportStylesOOO_getImplementationName() throw()
-{
-    return OUString(
-        "com.sun.star.comp.Writer.XMLStylesExporter" );
-}
-
-Sequence< OUString > SAL_CALL SwXMLExportStylesOOO_getSupportedServiceNames()
-    throw()
-{
-    const OUString aServiceName(SwXMLExportStylesOOO_getImplementationName());
-    const Sequence< OUString > aSeq( &aServiceName, 1 );
-    return aSeq;
-}
-
-Reference< XInterface > SAL_CALL SwXMLExportStylesOOO_createInstance(
-        const Reference< XMultiServiceFactory > & rSMgr)
-    throw( Exception )
-{
-    return (cppu::OWeakObject*)new SwXMLExport( comphelper::getComponentContext(rSMgr), SwXMLExportStylesOOO_getImplementationName(),
-        SvXMLExportFlags::STYLES | SvXMLExportFlags::MASTERSTYLES | SvXMLExportFlags::AUTOSTYLES |
-        SvXMLExportFlags::FONTDECLS );
-}
-
-OUString SAL_CALL SwXMLExportContentOOO_getImplementationName() throw()
-{
-    return OUString(
-        "com.sun.star.comp.Writer.XMLContentExporter" );
-}
-
-Sequence< OUString > SAL_CALL SwXMLExportContentOOO_getSupportedServiceNames()
-    throw()
-{
-    const OUString aServiceName(SwXMLExportContentOOO_getImplementationName());
-    const Sequence< OUString > aSeq( &aServiceName, 1 );
-    return aSeq;
-}
-
-Reference< XInterface > SAL_CALL SwXMLExportContentOOO_createInstance(
-        const Reference< XMultiServiceFactory > & rSMgr)
-    throw( Exception )
-{
-    return (cppu::OWeakObject*)new SwXMLExport( comphelper::getComponentContext(rSMgr), SwXMLExportContentOOO_getImplementationName(),
-        SvXMLExportFlags::AUTOSTYLES | SvXMLExportFlags::CONTENT | SvXMLExportFlags::SCRIPTS |
-        SvXMLExportFlags::FONTDECLS );
-}
-
-OUString SAL_CALL SwXMLExportMetaOOO_getImplementationName() throw()
-{
-    return OUString(
-        "com.sun.star.comp.Writer.XMLMetaExporter" );
-}
-
-Sequence< OUString > SAL_CALL SwXMLExportMetaOOO_getSupportedServiceNames()
-    throw()
-{
-    const OUString aServiceName(SwXMLExportMetaOOO_getImplementationName());
-    const Sequence< OUString > aSeq( &aServiceName, 1 );
-    return aSeq;
-}
-
-Reference< XInterface > SAL_CALL SwXMLExportMetaOOO_createInstance(
-        const Reference< XMultiServiceFactory > & rSMgr)
-    throw( Exception )
-{
-    return (cppu::OWeakObject*)new SwXMLExport( comphelper::getComponentContext(rSMgr), SwXMLExportMetaOOO_getImplementationName(), SvXMLExportFlags::META);
-}
-
-OUString SAL_CALL SwXMLExportSettingsOOO_getImplementationName() throw()
-{
-    return OUString(
-        "com.sun.star.comp.Writer.XMLSettingsExporter" );
-}
-
-Sequence< OUString > SAL_CALL SwXMLExportSettingsOOO_getSupportedServiceNames()
-    throw()
-{
-    const OUString aServiceName(SwXMLExportSettingsOOO_getImplementationName());
-    const Sequence< OUString > aSeq( &aServiceName, 1 );
-    return aSeq;
-}
-
-Reference< XInterface > SAL_CALL SwXMLExportSettingsOOO_createInstance(
-        const Reference< XMultiServiceFactory > & rSMgr)
-    throw( Exception )
-{
-    return (cppu::OWeakObject*)new SwXMLExport( comphelper::getComponentContext(rSMgr), SwXMLExportSettingsOOO_getImplementationName(), SvXMLExportFlags::SETTINGS);
-}
-
-// OASIS
-OUString SAL_CALL SwXMLExport_getImplementationName() throw()
-{
-    return OUString(
-        "com.sun.star.comp.Writer.XMLOasisExporter" );
-}
-
-Sequence< OUString > SAL_CALL SwXMLExport_getSupportedServiceNames()
-    throw()
-{
-    const OUString aServiceName(SwXMLExport_getImplementationName());
-    const Sequence< OUString > aSeq( &aServiceName, 1 );
-    return aSeq;
-}
-
-Reference< XInterface > SAL_CALL SwXMLExport_createInstance(
-        const Reference< XMultiServiceFactory > & rSMgr)
-    throw( Exception )
-{
-    return (cppu::OWeakObject*)new SwXMLExport( comphelper::getComponentContext(rSMgr), SwXMLExport_getImplementationName(), SvXMLExportFlags::ALL|SvXMLExportFlags::OASIS);
-}
-
-OUString SAL_CALL SwXMLExportStyles_getImplementationName() throw()
-{
-    return OUString(
-        "com.sun.star.comp.Writer.XMLOasisStylesExporter" );
-}
-
-Sequence< OUString > SAL_CALL SwXMLExportStyles_getSupportedServiceNames()
-    throw()
-{
-    const OUString aServiceName(SwXMLExportStyles_getImplementationName());
-    const Sequence< OUString > aSeq( &aServiceName, 1 );
-    return aSeq;
-}
-
-Reference< XInterface > SAL_CALL SwXMLExportStyles_createInstance(
-        const Reference< XMultiServiceFactory > & rSMgr)
-    throw( Exception )
+namespace
 {
-    return (cppu::OWeakObject*)new SwXMLExport( comphelper::getComponentContext(rSMgr), SwXMLExportStyles_getImplementationName(),
-        SvXMLExportFlags::STYLES | SvXMLExportFlags::MASTERSTYLES | SvXMLExportFlags::AUTOSTYLES |
-        SvXMLExportFlags::FONTDECLS|SvXMLExportFlags::OASIS );
+    class theSwXMLExportUnoTunnelId : public rtl::Static< UnoTunnelIdInit, theSwXMLExportUnoTunnelId > {};
 }
 
-OUString SAL_CALL SwXMLExportContent_getImplementationName() throw()
+const Sequence< sal_Int8 > & SwXMLExport::getUnoTunnelId() throw()
 {
-    return OUString(
-        "com.sun.star.comp.Writer.XMLOasisContentExporter" );
+    return theSwXMLExportUnoTunnelId::get().getSeq();
 }
 
-Sequence< OUString > SAL_CALL SwXMLExportContent_getSupportedServiceNames()
-    throw()
+sal_Int64 SAL_CALL SwXMLExport::getSomething( const Sequence< sal_Int8 >& rId )
+    throw(RuntimeException, std::exception)
 {
-    const OUString aServiceName(SwXMLExportContent_getImplementationName());
-    const Sequence< OUString > aSeq( &aServiceName, 1 );
-    return aSeq;
+    if( rId.getLength() == 16
+        && 0 == memcmp( getUnoTunnelId().getConstArray(),
+                                        rId.getConstArray(), 16 ) )
+    {
+        return sal::static_int_cast< sal_Int64 >( reinterpret_cast< sal_IntPtr >(this) );
+    }
+    return SvXMLExport::getSomething( rId );
 }
 
-Reference< XInterface > SAL_CALL SwXMLExportContent_createInstance(
-        const Reference< XMultiServiceFactory > & rSMgr)
-    throw( Exception )
+SwDoc* SwXMLExport::getDoc()
 {
-    return (cppu::OWeakObject*)new SwXMLExport(
-        comphelper::getComponentContext(rSMgr), SwXMLExportContent_getImplementationName(),
-        SvXMLExportFlags::AUTOSTYLES | SvXMLExportFlags::CONTENT | SvXMLExportFlags::SCRIPTS |
-        SvXMLExportFlags::FONTDECLS|SvXMLExportFlags::OASIS );
+    if( doc != NULL )
+        return doc;
+    Reference < XTextDocument > xTextDoc( GetModel(), UNO_QUERY );
+    Reference < XText > xText = xTextDoc->getText();
+    Reference<XUnoTunnel> xTextTunnel( xText, UNO_QUERY);
+    assert( xTextTunnel.is());
+    SwXText *pText = reinterpret_cast< SwXText *>(
+            sal::static_int_cast< sal_IntPtr >( xTextTunnel->getSomething( SwXText::getUnoTunnelId() )));
+    assert( pText != NULL );
+    doc = pText->GetDoc();
+    assert( doc != NULL );
+    return doc;
 }
 
-OUString SAL_CALL SwXMLExportMeta_getImplementationName() throw()
+const SwDoc* SwXMLExport::getDoc() const
 {
-    return OUString(
-        "com.sun.star.comp.Writer.XMLOasisMetaExporter" );
+    return const_cast< SwXMLExport* >( this )->getDoc();
 }
 
-Sequence< OUString > SAL_CALL SwXMLExportMeta_getSupportedServiceNames()
-    throw()
+extern "C" SAL_DLLPUBLIC_EXPORT ::com::sun::star::uno::XInterface* SAL_CALL
+com_sun_star_comp_Writer_XMLExporter_get_implementation(::com::sun::star::uno::XComponentContext* context,
+        ::com::sun::star::uno::Sequence<css::uno::Any> const &)
 {
-    const OUString aServiceName(SwXMLExportMeta_getImplementationName());
-    const Sequence< OUString > aSeq( &aServiceName, 1 );
-    return aSeq;
+    return cppu::acquire(new SwXMLExport(context, OUString("com.sun.star.comp.Writer.XMLExporter"),
+                SvXMLExportFlags::ALL));
 }
 
-Reference< XInterface > SAL_CALL SwXMLExportMeta_createInstance(
-        const Reference< XMultiServiceFactory > & rSMgr)
-    throw( Exception )
+extern "C" SAL_DLLPUBLIC_EXPORT ::com::sun::star::uno::XInterface* SAL_CALL
+com_sun_star_comp_Writer_XMLStylesExporter_get_implementation(::com::sun::star::uno::XComponentContext* context,
+        ::com::sun::star::uno::Sequence<css::uno::Any> const &)
 {
-    return (cppu::OWeakObject*)new SwXMLExport( comphelper::getComponentContext(rSMgr), SwXMLExportMeta_getImplementationName(), SvXMLExportFlags::META|SvXMLExportFlags::OASIS);
+    return cppu::acquire(new SwXMLExport(context, OUString("com.sun.star.comp.Writer.XMLStylesExporter"),
+                SvXMLExportFlags::STYLES | SvXMLExportFlags::MASTERSTYLES | SvXMLExportFlags::AUTOSTYLES |
+                SvXMLExportFlags::FONTDECLS));
 }
 
-OUString SAL_CALL SwXMLExportSettings_getImplementationName() throw()
+extern "C" SAL_DLLPUBLIC_EXPORT ::com::sun::star::uno::XInterface* SAL_CALL
+com_sun_star_comp_Writer_XMLContentExporter_get_implementation(::com::sun::star::uno::XComponentContext* context,
+        ::com::sun::star::uno::Sequence<css::uno::Any> const &)
 {
-    return OUString(
-        "com.sun.star.comp.Writer.XMLOasisSettingsExporter" );
+    return cppu::acquire(new SwXMLExport(context, OUString("com.sun.star.comp.Writer.XMLContentExporter"),
+                SvXMLExportFlags::SCRIPTS | SvXMLExportFlags::CONTENT | SvXMLExportFlags::AUTOSTYLES |
+                SvXMLExportFlags::FONTDECLS));
 }
 
-Sequence< OUString > SAL_CALL SwXMLExportSettings_getSupportedServiceNames()
-    throw()
+extern "C" SAL_DLLPUBLIC_EXPORT ::com::sun::star::uno::XInterface* SAL_CALL
+com_sun_star_comp_Writer_XMLMetaExporter_get_implementation(::com::sun::star::uno::XComponentContext* context,
+        ::com::sun::star::uno::Sequence<css::uno::Any> const &)
 {
-    const OUString aServiceName(SwXMLExportSettings_getImplementationName());
-    const Sequence< OUString > aSeq( &aServiceName, 1 );
-    return aSeq;
+    return cppu::acquire(new SwXMLExport(context, OUString("com.sun.star.comp.Writer.XMLMetaExporter"),
+                SvXMLExportFlags::META));
 }
 
-Reference< XInterface > SAL_CALL SwXMLExportSettings_createInstance(
-        const Reference< XMultiServiceFactory > & rSMgr)
-    throw( Exception )
+extern "C" SAL_DLLPUBLIC_EXPORT ::com::sun::star::uno::XInterface* SAL_CALL
+com_sun_star_comp_Writer_XMLSettingsExporter_get_implementation(::com::sun::star::uno::XComponentContext* context,
+        ::com::sun::star::uno::Sequence<css::uno::Any> const &)
 {
-    return (cppu::OWeakObject*)new SwXMLExport( comphelper::getComponentContext(rSMgr), SwXMLExportSettings_getImplementationName(), SvXMLExportFlags::SETTINGS|SvXMLExportFlags::OASIS);
+    return cppu::acquire(new SwXMLExport(context, OUString("com.sun.star.comp.Writer.XMLSettingsExporter"),
+                SvXMLExportFlags::SETTINGS));
 }
 
-namespace
+extern "C" SAL_DLLPUBLIC_EXPORT ::com::sun::star::uno::XInterface* SAL_CALL
+com_sun_star_comp_Writer_XMLOasisExporter_get_implementation(::com::sun::star::uno::XComponentContext* context,
+        ::com::sun::star::uno::Sequence<css::uno::Any> const &)
 {
-    class theSwXMLExportUnoTunnelId : public rtl::Static< UnoTunnelIdInit, theSwXMLExportUnoTunnelId > {};
+    return cppu::acquire(new SwXMLExport(context, OUString("com.sun.star.comp.Writer.XMLOasisExporter"),
+                SvXMLExportFlags::ALL | SvXMLExportFlags::OASIS));
 }
 
-const Sequence< sal_Int8 > & SwXMLExport::getUnoTunnelId() throw()
+extern "C" SAL_DLLPUBLIC_EXPORT ::com::sun::star::uno::XInterface* SAL_CALL
+com_sun_star_comp_Writer_XMLOasisStylesExporter_get_implementation(::com::sun::star::uno::XComponentContext* context,
+        ::com::sun::star::uno::Sequence<css::uno::Any> const &)
 {
-    return theSwXMLExportUnoTunnelId::get().getSeq();
+    return cppu::acquire(new SwXMLExport(context, OUString("com.sun.star.comp.Writer.XMLOasisStylesExporter"),
+                SvXMLExportFlags::STYLES | SvXMLExportFlags::MASTERSTYLES | SvXMLExportFlags::AUTOSTYLES |
+                SvXMLExportFlags::FONTDECLS | SvXMLExportFlags::OASIS));
 }
 
-sal_Int64 SAL_CALL SwXMLExport::getSomething( const Sequence< sal_Int8 >& rId )
-    throw(RuntimeException, std::exception)
+extern "C" SAL_DLLPUBLIC_EXPORT ::com::sun::star::uno::XInterface* SAL_CALL
+com_sun_star_comp_Writer_XMLOasisContentExporter_get_implementation(::com::sun::star::uno::XComponentContext* context,
+        ::com::sun::star::uno::Sequence<css::uno::Any> const &)
 {
-    if( rId.getLength() == 16
-        && 0 == memcmp( getUnoTunnelId().getConstArray(),
-                                        rId.getConstArray(), 16 ) )
-    {
-        return sal::static_int_cast< sal_Int64 >( reinterpret_cast< sal_IntPtr >(this) );
-    }
-    return SvXMLExport::getSomething( rId );
+    return cppu::acquire(new SwXMLExport(context, OUString("com.sun.star.comp.Writer.XMLOasisContentExporter"),
+                SvXMLExportFlags::AUTOSTYLES | SvXMLExportFlags::CONTENT | SvXMLExportFlags::SCRIPTS |
+                SvXMLExportFlags::FONTDECLS | SvXMLExportFlags::OASIS));
 }
 
-SwDoc* SwXMLExport::getDoc()
+extern "C" SAL_DLLPUBLIC_EXPORT ::com::sun::star::uno::XInterface* SAL_CALL
+com_sun_star_comp_Writer_XMLOasisMetaExporter_get_implementation(::com::sun::star::uno::XComponentContext* context,
+        ::com::sun::star::uno::Sequence<css::uno::Any> const &)
 {
-    if( doc != NULL )
-        return doc;
-    Reference < XTextDocument > xTextDoc( GetModel(), UNO_QUERY );
-    Reference < XText > xText = xTextDoc->getText();
-    Reference<XUnoTunnel> xTextTunnel( xText, UNO_QUERY);
-    assert( xTextTunnel.is());
-    SwXText *pText = reinterpret_cast< SwXText *>(
-            sal::static_int_cast< sal_IntPtr >( xTextTunnel->getSomething( SwXText::getUnoTunnelId() )));
-    assert( pText != NULL );
-    doc = pText->GetDoc();
-    assert( doc != NULL );
-    return doc;
+    return cppu::acquire(new SwXMLExport(context, OUString("com.sun.star.comp.Writer.XMLOasisMetaExporter"),
+                SvXMLExportFlags::META | SvXMLExportFlags::OASIS));
 }
 
-const SwDoc* SwXMLExport::getDoc() const
+extern "C" SAL_DLLPUBLIC_EXPORT ::com::sun::star::uno::XInterface* SAL_CALL
+com_sun_star_comp_Writer_XMLOasisSettingsExporter_get_implementation(::com::sun::star::uno::XComponentContext* context,
+        ::com::sun::star::uno::Sequence<css::uno::Any> const &)
 {
-    return const_cast< SwXMLExport* >( this )->getDoc();
+    return cppu::acquire(new SwXMLExport(context, OUString("com.sun.star.comp.Writer.XMLOasisSettingsExporter"),
+                SvXMLExportFlags::SETTINGS | SvXMLExportFlags::OASIS));
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/filter/xml/xmlimp.cxx b/sw/source/filter/xml/xmlimp.cxx
index dfd3266..ab8c9cc 100644
--- a/sw/source/filter/xml/xmlimp.cxx
+++ b/sw/source/filter/xml/xmlimp.cxx
@@ -1488,120 +1488,6 @@ void SwXMLImport::initialize(
     }
 }
 
-// UNO component registration helper functions
-OUString SAL_CALL SwXMLImport_getImplementationName() throw()
-{
-    return OUString(
-        "com.sun.star.comp.Writer.XMLOasisImporter" );
-}
-
-uno::Sequence< OUString > SAL_CALL SwXMLImport_getSupportedServiceNames()
-    throw()
-{
-    const OUString aServiceName( SwXMLImport_getImplementationName() );
-    const uno::Sequence< OUString > aSeq( &aServiceName, 1 );
-    return aSeq;
-}
-
-uno::Reference< uno::XInterface > SAL_CALL SwXMLImport_createInstance(
-        const uno::Reference< lang::XMultiServiceFactory > & rSMgr)
-    throw( uno::Exception )
-{
-    return (cppu::OWeakObject*)new SwXMLImport( comphelper::getComponentContext(rSMgr), SwXMLImport_getImplementationName(), SvXMLImportFlags::ALL );
-}
-
-OUString SAL_CALL SwXMLImportStyles_getImplementationName() throw()
-{
-    return OUString(
-        "com.sun.star.comp.Writer.XMLOasisStylesImporter" );
-}
-
-uno::Sequence< OUString > SAL_CALL SwXMLImportStyles_getSupportedServiceNames()
-    throw()
-{
-    const OUString aServiceName( SwXMLImportStyles_getImplementationName() );
-    const uno::Sequence< OUString > aSeq( &aServiceName, 1 );
-    return aSeq;
-}
-
-uno::Reference< uno::XInterface > SAL_CALL SwXMLImportStyles_createInstance(
-        const uno::Reference< lang::XMultiServiceFactory > & rSMgr)
-    throw( uno::Exception )
-{
-    return (cppu::OWeakObject*)new SwXMLImport(
-        comphelper::getComponentContext(rSMgr),
-        SwXMLImportStyles_getImplementationName(),
-        SvXMLImportFlags::STYLES | SvXMLImportFlags::MASTERSTYLES | SvXMLImportFlags::AUTOSTYLES |
-        SvXMLImportFlags::FONTDECLS );
-}
-
-OUString SAL_CALL SwXMLImportContent_getImplementationName() throw()
-{
-    return OUString(
-        "com.sun.star.comp.Writer.XMLOasisContentImporter" );
-}
-
-uno::Sequence< OUString > SAL_CALL SwXMLImportContent_getSupportedServiceNames()
-    throw()
-{
-    const OUString aServiceName( SwXMLImportContent_getImplementationName() );
-    const uno::Sequence< OUString > aSeq( &aServiceName, 1 );
-    return aSeq;
-}
-
-uno::Reference< uno::XInterface > SAL_CALL SwXMLImportContent_createInstance(
-        const uno::Reference< lang::XMultiServiceFactory > & rSMgr)
-    throw( uno::Exception )
-{
-    return (cppu::OWeakObject*)new SwXMLImport(
-        comphelper::getComponentContext(rSMgr),
-        SwXMLImportContent_getImplementationName(),
-        SvXMLImportFlags::AUTOSTYLES | SvXMLImportFlags::CONTENT | SvXMLImportFlags::SCRIPTS |
-        SvXMLImportFlags::FONTDECLS );
-}
-
-OUString SAL_CALL SwXMLImportMeta_getImplementationName() throw()
-{
-    return OUString(
-        "com.sun.star.comp.Writer.XMLOasisMetaImporter" );
-}
-
-uno::Sequence< OUString > SAL_CALL SwXMLImportMeta_getSupportedServiceNames()
-    throw()
-{
-    const OUString aServiceName( SwXMLImportMeta_getImplementationName() );
-    const uno::Sequence< OUString > aSeq( &aServiceName, 1 );
-    return aSeq;
-}
-
-uno::Reference< uno::XInterface > SAL_CALL SwXMLImportMeta_createInstance(
-        const uno::Reference< lang::XMultiServiceFactory > & rSMgr)
-    throw( uno::Exception )
-{
-    return (cppu::OWeakObject*)new SwXMLImport( comphelper::getComponentContext(rSMgr), SwXMLImportMeta_getImplementationName(), SvXMLImportFlags::META );
-}
-
-OUString SAL_CALL SwXMLImportSettings_getImplementationName() throw()
-{
-    return OUString(
-        "com.sun.star.comp.Writer.XMLOasisSettingsImporter" );
-}
-
-uno::Sequence< OUString > SAL_CALL SwXMLImportSettings_getSupportedServiceNames()
-    throw()
-{
-    const OUString aServiceName( SwXMLImportSettings_getImplementationName() );
-    const uno::Sequence< OUString > aSeq( &aServiceName, 1 );
-    return aSeq;
-}
-
-uno::Reference< uno::XInterface > SAL_CALL SwXMLImportSettings_createInstance(
-        const uno::Reference< lang::XMultiServiceFactory > & rSMgr)
-    throw( uno::Exception )
-{
-    return (cppu::OWeakObject*)new SwXMLImport( comphelper::getComponentContext(rSMgr), SwXMLImportSettings_getImplementationName(), SvXMLImportFlags::SETTINGS );
-}
-
 SwDoc* SwImport::GetDocFromXMLImport( SvXMLImport& rImport )
 {
     uno::Reference<lang::XUnoTunnel> xModelTunnel( rImport.GetModel(), uno::UNO_QUERY );
@@ -1656,4 +1542,48 @@ const SwDoc* SwXMLImport::getDoc() const
     return const_cast< SwXMLImport* >( this )->getDoc();
 }
 
+extern "C" SAL_DLLPUBLIC_EXPORT ::com::sun::star::uno::XInterface* SAL_CALL
+com_sun_star_comp_Writer_XMLOasisImporter_get_implementation(::com::sun::star::uno::XComponentContext* context,
+        ::com::sun::star::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new SwXMLImport(context, OUString("com.sun.star.comp.Writer.XMLOasisImporter"),
+                SvXMLImportFlags::ALL));
+}
+
+
+extern "C" SAL_DLLPUBLIC_EXPORT ::com::sun::star::uno::XInterface* SAL_CALL
+com_sun_star_comp_Writer_XMLOasisStylesImporter_get_implementation(::com::sun::star::uno::XComponentContext* context,
+        ::com::sun::star::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new SwXMLImport(context, OUString("com.sun.star.comp.Writer.XMLOasisStylesImporter"),
+                SvXMLImportFlags::STYLES | SvXMLImportFlags::MASTERSTYLES | SvXMLImportFlags::AUTOSTYLES |
+                SvXMLImportFlags::FONTDECLS));
+}
+
+
+extern "C" SAL_DLLPUBLIC_EXPORT ::com::sun::star::uno::XInterface* SAL_CALL
+com_sun_star_comp_Writer_XMLOasisContentImporter_get_implementation(::com::sun::star::uno::XComponentContext* context,
+        ::com::sun::star::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new SwXMLImport(context, OUString("com.sun.star.comp.Writer.XMLOasisContentImporter"),
+                SvXMLImportFlags::CONTENT | SvXMLImportFlags::SCRIPTS | SvXMLImportFlags::AUTOSTYLES |
+                SvXMLImportFlags::FONTDECLS));
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT ::com::sun::star::uno::XInterface* SAL_CALL
+com_sun_star_comp_Writer_XMLOasisMetaImporter_get_implementation(::com::sun::star::uno::XComponentContext* context,
+        ::com::sun::star::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new SwXMLImport(context, OUString("com.sun.star.comp.Writer.XMLOasisMetaImporter"),
+                SvXMLImportFlags::META));
+}
+
+
+extern "C" SAL_DLLPUBLIC_EXPORT ::com::sun::star::uno::XInterface* SAL_CALL
+com_sun_star_comp_Writer_XMLOasisSettingsImporter_get_implementation(::com::sun::star::uno::XComponentContext* context,
+        ::com::sun::star::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new SwXMLImport(context, OUString("com.sun.star.comp.Writer.XMLOasisSettingsImporter"),
+                SvXMLImportFlags::SETTINGS));
+}
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/uibase/uno/unofreg.cxx b/sw/source/uibase/uno/unofreg.cxx
index 46d8810..84105c1 100644
--- a/sw/source/uibase/uno/unofreg.cxx
+++ b/sw/source/uibase/uno/unofreg.cxx
@@ -60,127 +60,7 @@ SAL_DLLPUBLIC_EXPORT void * SAL_CALL sw_component_getFactory(
         uno::Reference< XSingleServiceFactory > xFactory;
 
         const sal_Int32 nImplNameLen = strlen( pImplName );
-        if( SwXMLImport_getImplementationName().equalsAsciiL( pImplName,
-                                                              nImplNameLen ) )
-        {
-            xFactory = ::cppu::createSingleFactory( xMSF,
-                SwXMLImport_getImplementationName(),
-                SwXMLImport_createInstance,
-                SwXMLImport_getSupportedServiceNames() );
-        }
-        else if( SwXMLImportStyles_getImplementationName().equalsAsciiL(
-                                                    pImplName, nImplNameLen ) )
-        {
-            xFactory = ::cppu::createSingleFactory( xMSF,
-                SwXMLImportStyles_getImplementationName(),
-                SwXMLImportStyles_createInstance,
-                SwXMLImportStyles_getSupportedServiceNames() );
-        }
-        else if( SwXMLImportContent_getImplementationName().equalsAsciiL(
-                                                    pImplName, nImplNameLen ) )
-        {
-            xFactory = ::cppu::createSingleFactory( xMSF,
-                SwXMLImportContent_getImplementationName(),
-                SwXMLImportContent_createInstance,
-                SwXMLImportContent_getSupportedServiceNames() );
-        }
-        else if( SwXMLImportMeta_getImplementationName().equalsAsciiL(
-                                                    pImplName, nImplNameLen ) )
-        {
-            xFactory = ::cppu::createSingleFactory( xMSF,
-                SwXMLImportMeta_getImplementationName(),
-                SwXMLImportMeta_createInstance,
-                SwXMLImportMeta_getSupportedServiceNames() );
-        }
-        else if( SwXMLImportSettings_getImplementationName().equalsAsciiL(
-                                                    pImplName, nImplNameLen ) )
-        {
-            xFactory = ::cppu::createSingleFactory( xMSF,
-                SwXMLImportSettings_getImplementationName(),
-                SwXMLImportSettings_createInstance,
-                SwXMLImportSettings_getSupportedServiceNames() );
-        }
-        else if( SwXMLExportOOO_getImplementationName().equalsAsciiL( pImplName,
-                                                            nImplNameLen ) )
-        {
-            xFactory = ::cppu::createSingleFactory( xMSF,
-                SwXMLExportOOO_getImplementationName(),
-                SwXMLExportOOO_createInstance,
-                SwXMLExportOOO_getSupportedServiceNames() );
-        }
-        else if( SwXMLExportStylesOOO_getImplementationName().equalsAsciiL(
-                                                    pImplName, nImplNameLen ) )
-        {
-            xFactory = ::cppu::createSingleFactory( xMSF,
-                SwXMLExportStylesOOO_getImplementationName(),
-                SwXMLExportStylesOOO_createInstance,
-                SwXMLExportStylesOOO_getSupportedServiceNames() );
-        }
-        else if( SwXMLExportContentOOO_getImplementationName().equalsAsciiL(
-                                                    pImplName, nImplNameLen ) )
-        {
-            xFactory = ::cppu::createSingleFactory( xMSF,
-                SwXMLExportContentOOO_getImplementationName(),
-                SwXMLExportContentOOO_createInstance,
-                SwXMLExportContentOOO_getSupportedServiceNames() );
-        }
-        else if( SwXMLExportMetaOOO_getImplementationName().equalsAsciiL(
-                                                    pImplName, nImplNameLen ) )
-        {
-            xFactory = ::cppu::createSingleFactory( xMSF,
-                SwXMLExportMetaOOO_getImplementationName(),
-                SwXMLExportMetaOOO_createInstance,
-                SwXMLExportMetaOOO_getSupportedServiceNames() );
-        }
-        else if( SwXMLExportSettingsOOO_getImplementationName().equalsAsciiL(
-                                                    pImplName, nImplNameLen ) )
-        {
-            xFactory = ::cppu::createSingleFactory( xMSF,
-                SwXMLExportSettingsOOO_getImplementationName(),
-                SwXMLExportSettingsOOO_createInstance,
-                SwXMLExportSettingsOOO_getSupportedServiceNames() );
-        }
-        else if( SwXMLExport_getImplementationName().equalsAsciiL( pImplName,
-                                                            nImplNameLen ) )
-        {
-            xFactory = ::cppu::createSingleFactory( xMSF,
-                SwXMLExport_getImplementationName(),
-                SwXMLExport_createInstance,
-                SwXMLExport_getSupportedServiceNames() );
-        }
-        else if( SwXMLExportStyles_getImplementationName().equalsAsciiL(
-                                                    pImplName, nImplNameLen ) )
-        {
-            xFactory = ::cppu::createSingleFactory( xMSF,
-                SwXMLExportStyles_getImplementationName(),
-                SwXMLExportStyles_createInstance,
-                SwXMLExportStyles_getSupportedServiceNames() );
-        }
-        else if( SwXMLExportContent_getImplementationName().equalsAsciiL(
-                                                    pImplName, nImplNameLen ) )
-        {
-            xFactory = ::cppu::createSingleFactory( xMSF,
-                SwXMLExportContent_getImplementationName(),
-                SwXMLExportContent_createInstance,
-                SwXMLExportContent_getSupportedServiceNames() );
-        }
-        else if( SwXMLExportMeta_getImplementationName().equalsAsciiL(
-                                                    pImplName, nImplNameLen ) )
-        {
-            xFactory = ::cppu::createSingleFactory( xMSF,
-                SwXMLExportMeta_getImplementationName(),
-                SwXMLExportMeta_createInstance,
-                SwXMLExportMeta_getSupportedServiceNames() );
-        }
-        else if( SwXMLExportSettings_getImplementationName().equalsAsciiL(
-                                                    pImplName, nImplNameLen ) )
-        {
-            xFactory = ::cppu::createSingleFactory( xMSF,
-                SwXMLExportSettings_getImplementationName(),
-                SwXMLExportSettings_createInstance,
-                SwXMLExportSettings_getSupportedServiceNames() );
-        }
-        else if( SwXAutoTextContainer_getImplementationName().equalsAsciiL(
+        if( SwXAutoTextContainer_getImplementationName().equalsAsciiL(
                                                     pImplName, nImplNameLen ) )
         {
             xFactory = ::cppu::createSingleFactory( xMSF,
diff --git a/sw/util/sw.component b/sw/util/sw.component
index 46cdc67..81baa5f 100644
--- a/sw/util/sw.component
+++ b/sw/util/sw.component
@@ -43,49 +43,64 @@
   <implementation name="com.sun.star.comp.Writer.WriterModule">
     <service name="com.sun.star.text.ModuleDispatcher"/>
   </implementation>
-  <implementation name="com.sun.star.comp.Writer.XMLContentExporter">
+  <implementation name="com.sun.star.comp.Writer.XMLContentExporter"
+      constructor="com_sun_star_comp_Writer_XMLContentExporter_get_implementation">
     <service name="com.sun.star.comp.Writer.XMLContentExporter"/>
   </implementation>
-  <implementation name="com.sun.star.comp.Writer.XMLExporter">
+  <implementation name="com.sun.star.comp.Writer.XMLExporter"
+      constructor="com_sun_star_comp_Writer_XMLExporter_get_implementation">
     <service name="com.sun.star.comp.Writer.XMLExporter"/>
   </implementation>
-  <implementation name="com.sun.star.comp.Writer.XMLMetaExporter">
+  <implementation name="com.sun.star.comp.Writer.XMLMetaExporter"
+      constructor="com_sun_star_comp_Writer_XMLMetaExporter_get_implementation">
     <service name="com.sun.star.comp.Writer.XMLMetaExporter"/>
   </implementation>
-  <implementation name="com.sun.star.comp.Writer.XMLOasisContentExporter">
+  <implementation name="com.sun.star.comp.Writer.XMLOasisContentExporter"
+      constructor="com_sun_star_comp_Writer_XMLOasisContentExporter_get_implementation">
     <service name="com.sun.star.comp.Writer.XMLOasisContentExporter"/>
   </implementation>
-  <implementation name="com.sun.star.comp.Writer.XMLOasisContentImporter">
+  <implementation name="com.sun.star.comp.Writer.XMLOasisContentImporter"
+      constructor="com_sun_star_comp_Writer_XMLOasisContentImporter_get_implementation">
     <service name="com.sun.star.comp.Writer.XMLOasisContentImporter"/>
   </implementation>
-  <implementation name="com.sun.star.comp.Writer.XMLOasisExporter">
+  <implementation name="com.sun.star.comp.Writer.XMLOasisExporter"
+      constructor="com_sun_star_comp_Writer_XMLOasisExporter_get_implementation">
     <service name="com.sun.star.comp.Writer.XMLOasisExporter"/>
   </implementation>
-  <implementation name="com.sun.star.comp.Writer.XMLOasisImporter">
+  <implementation name="com.sun.star.comp.Writer.XMLOasisImporter"
+      constructor="com_sun_star_comp_Writer_XMLOasisImporter_get_implementation">
     <service name="com.sun.star.comp.Writer.XMLOasisImporter"/>
   </implementation>
-  <implementation name="com.sun.star.comp.Writer.XMLOasisMetaExporter">
+  <implementation name="com.sun.star.comp.Writer.XMLOasisMetaExporter"
+      constructor="com_sun_star_comp_Writer_XMLOasisMetaExporter_get_implementation">
     <service name="com.sun.star.comp.Writer.XMLOasisMetaExporter"/>
   </implementation>
-  <implementation name="com.sun.star.comp.Writer.XMLOasisMetaImporter">
+  <implementation name="com.sun.star.comp.Writer.XMLOasisMetaImporter"
+      constructor="com_sun_star_comp_Writer_XMLOasisMetaImporter_get_implementation">
     <service name="com.sun.star.comp.Writer.XMLOasisMetaImporter"/>
   </implementation>
-  <implementation name="com.sun.star.comp.Writer.XMLOasisSettingsExporter">
+  <implementation name="com.sun.star.comp.Writer.XMLOasisSettingsExporter"
+      constructor="com_sun_star_comp_Writer_XMLOasisSettingsExporter_get_implementation">
     <service name="com.sun.star.comp.Writer.XMLOasisSettingsExporter"/>
   </implementation>
-  <implementation name="com.sun.star.comp.Writer.XMLOasisSettingsImporter">
+  <implementation name="com.sun.star.comp.Writer.XMLOasisSettingsImporter"
+      constructor="com_sun_star_comp_Writer_XMLOasisSettingsImporter_get_implementation">
     <service name="com.sun.star.comp.Writer.XMLOasisSettingsImporter"/>
   </implementation>
-  <implementation name="com.sun.star.comp.Writer.XMLOasisStylesExporter">
+  <implementation name="com.sun.star.comp.Writer.XMLOasisStylesExporter"
+      constructor="com_sun_star_comp_Writer_XMLOasisStylesExporter_get_implementation">
     <service name="com.sun.star.comp.Writer.XMLOasisStylesExporter"/>
   </implementation>
-  <implementation name="com.sun.star.comp.Writer.XMLOasisStylesImporter">
+  <implementation name="com.sun.star.comp.Writer.XMLOasisStylesImporter"
+      constructor="com_sun_star_comp_Writer_XMLOasisStylesImporter_get_implementation">
     <service name="com.sun.star.comp.Writer.XMLOasisStylesImporter"/>
   </implementation>
-  <implementation name="com.sun.star.comp.Writer.XMLSettingsExporter">
+  <implementation name="com.sun.star.comp.Writer.XMLSettingsExporter"
+      constructor="com_sun_star_comp_Writer_XMLSettingsExporter_get_implementation">
     <service name="com.sun.star.comp.Writer.XMLSettingsExporter"/>
   </implementation>
-  <implementation name="com.sun.star.comp.Writer.XMLStylesExporter">
+  <implementation name="com.sun.star.comp.Writer.XMLStylesExporter"
+      constructor="com_sun_star_comp_Writer_XMLStylesExporter_get_implementation">
     <service name="com.sun.star.comp.Writer.XMLStylesExporter"/>
   </implementation>
   <implementation name="com.sun.star.util.comp.FinalThreadManager">


More information about the Libreoffice-commits mailing list