diff options
author | Noel Grandin <noel@peralex.com> | 2012-10-10 10:13:18 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2012-10-22 17:01:11 +0200 |
commit | fb741b5e1e6aeaee74cf14af4f1cc152f0ab0952 (patch) | |
tree | 24864ba5addb12799a508ce4718868026519f057 /xmlsecurity | |
parent | 9cabab002b1180650236f3d1f5fd32dfdd4bf79a (diff) |
fdo#46808, Adapt xml::sax::XWriter UNO service to new style
Create a merged XWriter interface for the service.
The xml.sax.Writer service already existed, it just did not have
an IDL file.
Change-Id: I4e6d3f3c68f9282a55fc7aa19778f97632fd8ad5
Diffstat (limited to 'xmlsecurity')
-rw-r--r-- | xmlsecurity/inc/xmlsecurity/xmlsignaturehelper.hxx | 4 | ||||
-rw-r--r-- | xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx | 9 | ||||
-rw-r--r-- | xmlsecurity/source/helper/xmlsignaturehelper.cxx | 21 |
3 files changed, 14 insertions, 20 deletions
diff --git a/xmlsecurity/inc/xmlsecurity/xmlsignaturehelper.hxx b/xmlsecurity/inc/xmlsecurity/xmlsignaturehelper.hxx index 6325282bb780..e8b371b0a7ee 100644 --- a/xmlsecurity/inc/xmlsecurity/xmlsignaturehelper.hxx +++ b/xmlsecurity/inc/xmlsecurity/xmlsignaturehelper.hxx @@ -31,7 +31,7 @@ #include <xmlsecurity/sigstruct.hxx> #include <com/sun/star/uno/XComponentContext.hpp> -#include <com/sun/star/xml/sax/XDocumentHandler.hpp> +#include <com/sun/star/xml/sax/XWriter.hpp> #include <com/sun/star/xml/crypto/XUriBinding.hpp> #include <com/sun/star/xml/crypto/XSEInitializer.hpp> #include <com/sun/star/xml/crypto/sax/XSecurityController.hpp> @@ -179,7 +179,7 @@ public: // MT: ??? I think only for adding/removing, not for new signatures... // MM: Yes, but if you want to insert a new signature into an existing signature file, those function // will be very usefull, see Mission 3 in the new "multisigdemo" program :-) - ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler> CreateDocumentHandlerWithHeader( const com::sun::star::uno::Reference< com::sun::star::io::XOutputStream >& xOutputStream ); + ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XWriter> CreateDocumentHandlerWithHeader( const com::sun::star::uno::Reference< com::sun::star::io::XOutputStream >& xOutputStream ); void CloseDocumentHandler( const ::com::sun::star::uno::Reference< com::sun::star::xml::sax::XDocumentHandler>& xDocumentHandler ); void ExportSignature( const com::sun::star::uno::Reference< com::sun::star::xml::sax::XDocumentHandler >& xDocumentHandler, const SignatureInformation& signatureInfo ); }; diff --git a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx index 9cee3b5bfee3..aa58d93ddb7b 100644 --- a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx +++ b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx @@ -378,9 +378,10 @@ IMPL_LINK_NOARG(DigitalSignaturesDialog, OKButtonHdl) embed::ElementModes::WRITE|embed::ElementModes::TRUNCATE, false ); uno::Reference< io::XOutputStream > xOutputStream( aStreamHelper.xSignatureStream, uno::UNO_QUERY ); - uno::Reference< com::sun::star::xml::sax::XDocumentHandler> xDocumentHandler = + uno::Reference< com::sun::star::xml::sax::XWriter> xSaxWriter = maSignatureHelper.CreateDocumentHandlerWithHeader( xOutputStream ); + uno::Reference< xml::sax::XDocumentHandler> xDocumentHandler(xSaxWriter, UNO_QUERY_THROW); size_t nInfos = maCurrentSignatureInformations.size(); for( size_t n = 0 ; n < nInfos ; ++n ) maSignatureHelper.ExportSignature( @@ -471,10 +472,11 @@ IMPL_LINK_NOARG(DigitalSignaturesDialog, AddButtonHdl) css::embed::ElementModes::WRITE|css::embed::ElementModes::TRUNCATE, true); Reference< css::io::XOutputStream > xOutputStream( aStreamHelper.xSignatureStream, UNO_QUERY_THROW); - Reference< css::xml::sax::XDocumentHandler> xDocumentHandler = + Reference< css::xml::sax::XWriter> xSaxWriter = maSignatureHelper.CreateDocumentHandlerWithHeader( xOutputStream ); // Export old signatures... + uno::Reference< xml::sax::XDocumentHandler> xDocumentHandler(xSaxWriter, UNO_QUERY_THROW); size_t nInfos = maCurrentSignatureInformations.size(); for ( size_t n = 0; n < nInfos; n++ ) maSignatureHelper.ExportSignature( xDocumentHandler, maCurrentSignatureInformations[n]); @@ -534,9 +536,10 @@ IMPL_LINK_NOARG(DigitalSignaturesDialog, RemoveButtonHdl) css::embed::ElementModes::WRITE | css::embed::ElementModes::TRUNCATE, true); Reference< css::io::XOutputStream > xOutputStream( aStreamHelper.xSignatureStream, UNO_QUERY_THROW); - Reference< css::xml::sax::XDocumentHandler> xDocumentHandler = + Reference< css::xml::sax::XWriter> xSaxWriter = maSignatureHelper.CreateDocumentHandlerWithHeader( xOutputStream ); + uno::Reference< xml::sax::XDocumentHandler> xDocumentHandler(xSaxWriter, UNO_QUERY_THROW); size_t nInfos = maCurrentSignatureInformations.size(); for( size_t n = 0 ; n < nInfos ; ++n ) maSignatureHelper.ExportSignature( xDocumentHandler, maCurrentSignatureInformations[ n ] ); diff --git a/xmlsecurity/source/helper/xmlsignaturehelper.cxx b/xmlsecurity/source/helper/xmlsignaturehelper.cxx index 26318d80e0a1..163e5f600f37 100644 --- a/xmlsecurity/source/helper/xmlsignaturehelper.cxx +++ b/xmlsecurity/source/helper/xmlsignaturehelper.cxx @@ -36,6 +36,7 @@ #include <com/sun/star/security/SerialNumberAdapter.hpp> #include <com/sun/star/beans/XPropertySet.hpp> #include <com/sun/star/xml/sax/Parser.hpp> +#include <com/sun/star/xml/sax/Writer.hpp> #include <tools/date.hxx> #include <tools/time.hxx> @@ -150,18 +151,14 @@ void XMLSignatureHelper::AddForSigning( sal_Int32 nSecurityId, const rtl::OUStri } -uno::Reference<xml::sax::XDocumentHandler> XMLSignatureHelper::CreateDocumentHandlerWithHeader( +uno::Reference<xml::sax::XWriter> XMLSignatureHelper::CreateDocumentHandlerWithHeader( const com::sun::star::uno::Reference< com::sun::star::io::XOutputStream >& xOutputStream ) { /* * get SAX writer component */ uno::Reference< lang::XMultiComponentFactory > xMCF( mxCtx->getServiceManager() ); - uno::Reference< io::XActiveDataSource > xSaxWriter( - xMCF->createInstanceWithContext(rtl::OUString( - "com.sun.star.xml.sax.Writer"), mxCtx ), uno::UNO_QUERY ); - - DBG_ASSERT( xSaxWriter.is(), "can't instantiate XML writer" ); + uno::Reference< xml::sax::XWriter > xSaxWriter = xml::sax::Writer::create(mxCtx); /* * connect XML writer to output stream @@ -169,12 +166,6 @@ uno::Reference<xml::sax::XDocumentHandler> XMLSignatureHelper::CreateDocumentHan xSaxWriter->setOutputStream( xOutputStream ); /* - * prepare document handler - */ - uno::Reference<xml::sax::XDocumentHandler> - xDocHandler( xSaxWriter,uno::UNO_QUERY); - - /* * write the xml context for signatures */ rtl::OUString tag_AllSignatures(TAG_DOCUMENTSIGNATURES); @@ -190,12 +181,12 @@ uno::Reference<xml::sax::XDocumentHandler> XMLSignatureHelper::CreateDocumentHan rtl::OUString(ATTR_XMLNS), sNamespace); - xDocHandler->startDocument(); - xDocHandler->startElement( + xSaxWriter->startDocument(); + xSaxWriter->startElement( tag_AllSignatures, uno::Reference< com::sun::star::xml::sax::XAttributeList > (pAttributeList)); - return xDocHandler; + return xSaxWriter; } void XMLSignatureHelper::CloseDocumentHandler( const uno::Reference<xml::sax::XDocumentHandler>& xDocumentHandler ) |