summaryrefslogtreecommitdiff
path: root/filter/source/odfflatxml/OdfFlatXml.cxx
diff options
context:
space:
mode:
authorNoel Grandin <noelgrandin@gmail.com>2023-05-29 20:24:02 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2023-06-01 11:59:06 +0200
commit5e68d6cfade45f40b1ad46025a81afe4cb8dd337 (patch)
treeaf7740f3636e6b303371c764bfe7ff083e847879 /filter/source/odfflatxml/OdfFlatXml.cxx
parentf15a6e1b1b186bf42e1ade05630d17841add2c46 (diff)
Convert XFastParser into a normal C++ interface
There is no need for it to be an UNO interface anymore (ever since we started supporting dynamic_cast on UNO objects). Which means that XImportFilter2 also needs become a C++ interface. Change-Id: Ice2db0f098271bba32b199bd083b08cb8410ce93 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152388 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'filter/source/odfflatxml/OdfFlatXml.cxx')
-rw-r--r--filter/source/odfflatxml/OdfFlatXml.cxx25
1 files changed, 13 insertions, 12 deletions
diff --git a/filter/source/odfflatxml/OdfFlatXml.cxx b/filter/source/odfflatxml/OdfFlatXml.cxx
index 4c838ab5f40e..0c76d193eb3b 100644
--- a/filter/source/odfflatxml/OdfFlatXml.cxx
+++ b/filter/source/odfflatxml/OdfFlatXml.cxx
@@ -23,19 +23,19 @@
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/xml/XImportFilter.hpp>
-#include <com/sun/star/xml/XImportFilter2.hpp>
#include <com/sun/star/xml/XExportFilter.hpp>
#include <com/sun/star/xml/sax/Parser.hpp>
#include <com/sun/star/xml/sax/InputSource.hpp>
#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
#include <com/sun/star/xml/sax/Writer.hpp>
-#include <com/sun/star/xml/sax/XFastParser.hpp>
#include <com/sun/star/io/XInputStream.hpp>
#include <com/sun/star/io/XOutputStream.hpp>
#include <com/sun/star/io/XActiveDataSource.hpp>
#include <com/sun/star/io/XSeekable.hpp>
#include <comphelper/diagnose_ex.hxx>
+#include <sax/ximportfilter2.hxx>
+#include <sax/xfastparser.hxx>
using namespace ::cppu;
using namespace ::osl;
@@ -55,8 +55,9 @@ namespace filter::odfflatxml {
* OdfFlatXml export and imports ODF flat XML documents by plugging a pass-through
* filter implementation into XmlFilterAdaptor.
*/
- class OdfFlatXml : public WeakImplHelper<XImportFilter, XImportFilter2,
- XExportFilter, DocumentHandlerAdapter, css::lang::XServiceInfo>
+ class OdfFlatXml : public WeakImplHelper<XImportFilter,
+ XExportFilter, DocumentHandlerAdapter, css::lang::XServiceInfo>,
+ public XImportFilter2
{
private:
Reference< XComponentContext > m_xContext;
@@ -75,9 +76,9 @@ namespace filter::odfflatxml {
const Sequence< OUString >& userData) override;
// XImportFilter2
- virtual sal_Bool SAL_CALL
+ virtual bool
importer(const Sequence< PropertyValue >& sourceData,
- const Reference< XFastParser >& fastParser,
+ XFastParser& fastParser,
const Sequence< OUString >& userData) override;
// XExportFilter
@@ -142,9 +143,9 @@ OdfFlatXml::importer(
if ( xSeekable.is() )
xSeekable->seek( 0 );
- css::uno::Reference< css::xml::sax::XFastParser > xFastParser (docHandler, UNO_QUERY );
- if( xFastParser.is() )
- xFastParser->parseStream( inputSource );
+ XFastParser* pFastParser = dynamic_cast<XFastParser*>(docHandler.get());
+ if( pFastParser )
+ pFastParser->parseStream( inputSource );
else
{
Reference<XParser> saxParser = Parser::create(m_xContext);
@@ -165,10 +166,10 @@ OdfFlatXml::importer(
return true;
}
-sal_Bool
+bool
OdfFlatXml::importer(
const Sequence< PropertyValue >& sourceData,
- const Reference< XFastParser >& xFastParser,
+ XFastParser& rFastParser,
const Sequence< OUString >& /* userData */)
{
// Read InputStream to read from and a URL used for the system id
@@ -201,7 +202,7 @@ OdfFlatXml::importer(
if ( xSeekable.is() )
xSeekable->seek( 0 );
- xFastParser->parseStream( inputSource );
+ rFastParser.parseStream( inputSource );
}
catch (const Exception &)
{