diff options
author | Noel Grandin <noel@peralex.com> | 2012-12-10 14:39:29 +0200 |
---|---|---|
committer | Noel Grandin <noel@peralex.com> | 2012-12-13 05:20:57 +0200 |
commit | 2f998bdf8f5c504f09833febe0cd16ce743f57a5 (patch) | |
tree | 77e69afc15cb85acff9b56c62b1947f5edd48aca /comphelper/source | |
parent | 90a0116ccb48388d91b21128fcac2e4609838581 (diff) |
fdo#46808, use service constructor for embed::FileSystemStorageFactory
Change-Id: Ic523e4b0a662a68a1a222b7697fcdae56d69903c
Diffstat (limited to 'comphelper/source')
-rw-r--r-- | comphelper/source/misc/storagehelper.cxx | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/comphelper/source/misc/storagehelper.cxx b/comphelper/source/misc/storagehelper.cxx index 888a8b3596f0..b7190663a7e0 100644 --- a/comphelper/source/misc/storagehelper.cxx +++ b/comphelper/source/misc/storagehelper.cxx @@ -22,6 +22,7 @@ #include <com/sun/star/embed/XStorage.hpp> #include <com/sun/star/embed/XTransactedObject.hpp> #include <com/sun/star/embed/StorageFactory.hpp> +#include <com/sun/star/embed/FileSystemStorageFactory.hpp> #include <com/sun/star/lang/XSingleServiceFactory.hpp> #include <com/sun/star/ucb/SimpleFileAccess.hpp> #include <com/sun/star/beans/XPropertySet.hpp> @@ -60,26 +61,12 @@ uno::Reference< lang::XSingleServiceFactory > OStorageHelper::GetStorageFactory( // ---------------------------------------------------------------------- uno::Reference< lang::XSingleServiceFactory > OStorageHelper::GetFileSystemStorageFactory( - const uno::Reference< lang::XMultiServiceFactory >& xSF ) + const uno::Reference< uno::XComponentContext >& rxContext ) throw ( uno::Exception ) { - uno::Reference< lang::XMultiServiceFactory > xFactory = xSF.is() ? xSF : ::comphelper::getProcessServiceFactory(); - if ( !xFactory.is() ) - throw uno::RuntimeException(); - - rtl::OUString sService(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.embed.FileSystemStorageFactory")); - - uno::Reference < lang::XSingleServiceFactory > xStorageFactory( - xFactory->createInstance(sService), uno::UNO_QUERY); - - if ( !xStorageFactory.is() ) - { - throw uno::RuntimeException(rtl::OUString( - RTL_CONSTASCII_USTRINGPARAM("Could not load: ")) + sService, - uno::Reference< uno::XInterface >()); - } + uno::Reference< uno::XComponentContext> xContext = rxContext.is() ? rxContext : ::comphelper::getProcessComponentContext(); - return xStorageFactory; + return embed::FileSystemStorageFactory::create(rxContext); } // ---------------------------------------------------------------------- @@ -118,7 +105,7 @@ uno::Reference< embed::XStorage > OStorageHelper::GetStorageFromURL( uno::Reference< embed::XStorage > OStorageHelper::GetStorageFromURL2( const ::rtl::OUString& aURL, sal_Int32 nStorageMode, - const uno::Reference< lang::XMultiServiceFactory >& xFactory ) + const uno::Reference< uno::XComponentContext >& rxContext ) throw ( uno::Exception ) { uno::Sequence< uno::Any > aArgs( 2 ); @@ -131,9 +118,9 @@ uno::Reference< embed::XStorage > OStorageHelper::GetStorageFromURL2( uno::Reference< ::com::sun::star::ucb::XCommandEnvironment > (), getProcessComponentContext() ); if (aCntnt.isDocument()) { - xFact = GetStorageFactory( comphelper::getComponentContext(xFactory) ); + xFact = GetStorageFactory( rxContext ); } else { - xFact = GetFileSystemStorageFactory( xFactory ); + xFact = GetFileSystemStorageFactory( rxContext ); } } catch (uno::Exception &) { } |