22#include <unordered_map>
23#include <com/sun/star/uno/XComponentContext.hpp>
24#include <com/sun/star/lang/XInitialization.hpp>
25#include <com/sun/star/script/XStorageBasedLibraryContainer.hpp>
26#include <com/sun/star/script/XLibraryContainerPassword.hpp>
27#include <com/sun/star/script/XLibraryContainerExport.hpp>
28#include <com/sun/star/script/XLibraryQueryExecutable.hpp>
29#include <com/sun/star/script/XLibraryContainer3.hpp>
30#include <com/sun/star/container/XNameContainer.hpp>
31#include <com/sun/star/container/XContainer.hpp>
32#include <com/sun/star/ucb/XSimpleFileAccess3.hpp>
33#include <com/sun/star/io/XOutputStream.hpp>
34#include <com/sun/star/io/XInputStream.hpp>
35#include <com/sun/star/util/XStringSubstitution.hpp>
36#include <com/sun/star/document/XStorageBasedDocument.hpp>
37#include <com/sun/star/lang/XServiceInfo.hpp>
38#include <com/sun/star/frame/XModel.hpp>
39#include <com/sun/star/deployment/XPackage.hpp>
40#include <com/sun/star/beans/XPropertySet.hpp>
41#include <com/sun/star/script/vba/XVBACompatibility.hpp>
42#include <com/sun/star/script/vba/XVBAScriptListener.hpp>
43#include <com/sun/star/util/XChangesNotifier.hpp>
45#include <osl/mutex.hxx>
60typedef ::cppu::WeakImplHelper<
61 css::container::XNameContainer,
62 css::container::XContainer,
97 void insertCheck(
const OUString& aName,
const css::uno::Any& aElement);
102 void insertNoCheck(
const OUString& aName,
const css::uno::Any& aElement);
109 virtual css::uno::Any SAL_CALL
getByName(
const OUString& aName )
override;
110 virtual css::uno::Sequence< OUString > SAL_CALL
getElementNames( )
override;
114 virtual void SAL_CALL
replaceByName(
const OUString& aName,
const css::uno::Any& aElement )
override;
117 virtual void SAL_CALL
insertByName(
const OUString& aName,
const css::uno::Any& aElement )
override;
118 virtual void SAL_CALL
removeByName(
const OUString& Name )
override;
121 virtual void SAL_CALL
addContainerListener(
const css::uno::Reference<css::container::XContainerListener >& xListener )
override;
122 virtual void SAL_CALL
removeContainerListener(
const css::uno::Reference<css::container::XContainerListener >& xListener )
override;
125 virtual void SAL_CALL
addChangesListener(
const css::uno::Reference<css::util::XChangesListener >& xListener )
override;
126 virtual void SAL_CALL
removeChangesListener(
const css::uno::Reference<css::util::XChangesListener >& xListener )
override;
165typedef ::cppu::WeakComponentImplHelper<
166 css::lang::XInitialization,
167 css::script::XStorageBasedLibraryContainer,
168 css::script::XLibraryContainerPassword,
169 css::script::XLibraryContainerExport,
170 css::script::XLibraryContainer3,
171 css::container::XContainer,
172 css::script::XLibraryQueryExecutable,
173 css::script::vba::XVBACompatibility,
174 css::lang::XServiceInfo,
188 css::uno::Reference< css::uno::XComponentContext >
mxContext;
189 css::uno::Reference< css::ucb::XSimpleFileAccess3 >
mxSFI;
220 std::u16string_view rName,
221 const css::uno::Reference< css::embed::XStorage >& rStorage );
225 std::u16string_view rName,
226 const css::uno::Reference< css::embed::XStorage >& rStorage,
227 std::u16string_view rTargetURL,
228 const css::uno::Reference< css::ucb::XSimpleFileAccess3 >& rToUseSFI,
229 const css::uno::Reference< css::task::XInteractionHandler >& rHandler );
232 const css::uno::Reference< css::embed::XStorage >& xStorage );
236 const css::uno::Reference< css::embed::XStorage >& xStorage,
237 std::u16string_view aTargetURL,
238 const css::uno::Reference< css::ucb::XSimpleFileAccess3 >& rToUseSFI );
242 const css::uno::Reference< css::embed::XStorage >& xStorage,
243 const OUString& aIndexFileName );
250 (
const OUString& aName,
const OUString& aLibInfoFileURL,
251 const OUString& StorageURL,
bool ReadOnly ) = 0;
257 const css::uno::Reference< css::container::XNameContainer>& xLibrary,
258 const OUString& aElementName,
259 const css::uno::Reference< css::io::XOutputStream >& xOutput
264 const css::uno::Reference< css::container::XNameContainer>& xLibrary,
265 const OUString& aElementName,
266 const OUString& aFile,
267 const css::uno::Reference< css::io::XInputStream >& xElementStream ) = 0;
272 const css::uno::Reference< css::embed::XStorage >& xStorage,
const css::uno::Reference< css::task::XInteractionHandler >& Handler );
276 const css::uno::Reference< css::embed::XStorage >& rStorage,
277 const OUString& aTargetURL,
278 const css::uno::Reference< css::ucb::XSimpleFileAccess3 >& rToUseSFI,
const css::uno::Reference< css::task::XInteractionHandler >& Handler );
283 bool bVerifyPasswordOnly=
false );
297 void init(
const OUString& rInitialDocumentURL,
298 const css::uno::Reference< css::embed::XStorage >& _rxInitialStorage );
308 const OUString& aSourceURL,
309 OUString& aLibInfoFileURL,
310 OUString& aStorageURL,
311 OUString& aUnexpandedStorageURL
319 const css::uno::Reference< css::embed::XStorage >& xStorage,
322 void initializeFromDocument(
const css::uno::Reference< css::document::XStorageBasedDocument >& _rxDocument );
325 virtual void _disposing(
const css::lang::EventObject& _rSource )
override;
328 virtual void SAL_CALL
disposing()
override;
331 void init_Impl(
const OUString& rInitialDocumentURL,
332 const css::uno::Reference< css::embed::XStorage >& _rxInitialStorage );
355 virtual css::uno::Any SAL_CALL
getByName(
const OUString& aName )
override;
356 virtual css::uno::Sequence< OUString > SAL_CALL
getElementNames()
override;
360 virtual css::uno::Reference< css::embed::XStorage > SAL_CALL
getRootStorage()
override;
361 virtual void SAL_CALL
setRootStorage(
const css::uno::Reference< css::embed::XStorage >& _rootstorage )
override;
362 virtual void SAL_CALL
storeLibrariesToStorage(
const css::uno::Reference< css::embed::XStorage >& RootStorage )
override;
367 virtual void SAL_CALL
addModifyListener(
const css::uno::Reference< css::util::XModifyListener >& aListener )
override;
368 virtual void SAL_CALL
removeModifyListener(
const css::uno::Reference< css::util::XModifyListener >& aListener )
override;
383 virtual void SAL_CALL
renameLibrary(
const OUString& Name,
const OUString& NewName )
override;
386 virtual css::uno::Reference< css::container::XNameContainer > SAL_CALL
388 virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL
createLibraryLink
389 (
const OUString& Name,
const OUString& StorageURL,
sal_Bool ReadOnly )
override;
390 virtual void SAL_CALL
removeLibrary(
const OUString& Name )
override;
392 virtual void SAL_CALL
loadLibrary(
const OUString& Name )
override;
395 virtual void SAL_CALL
initialize(
const css::uno::Sequence<
396 css::uno::Any >& aArguments )
override;
403 const OUString& OldPassword,
const OUString& NewPassword )
override;
407 css::container::XContainerListener >& xListener )
override;
409 css::container::XContainerListener >& xListener )
override;
412 virtual void SAL_CALL
exportLibrary(
const OUString& Name,
const OUString& URL,
413 const css::uno::Reference< css::task::XInteractionHandler >& Handler )
override;
423 virtual void SAL_CALL
setProjectName(
const OUString& _projectname )
override;
426 const css::uno::Reference< css::script::vba::XVBAScriptListener >& Listener )
override;
428 const css::uno::Reference< css::script::vba::XVBAScriptListener >& Listener )
override;
432 virtual css::uno::Reference<css::beans::XPropertySetInfo>
435 const css::uno::Any& aValue)
override;
436 virtual css::uno::Any SAL_CALL
getPropertyValue(
const OUString& PropertyName)
override;
438 const OUString& aPropertyName,
439 const css::uno::Reference<css::beans::XPropertyChangeListener>& xListener)
override;
441 const OUString& aPropertyName,
442 const css::uno::Reference<css::beans::XPropertyChangeListener>& aListener)
override;
444 const OUString& PropertyName,
445 const css::uno::Reference<css::beans::XVetoableChangeListener>& aListener)
override;
447 const OUString& PropertyName,
448 const css::uno::Reference<css::beans::XVetoableChangeListener>& aListener)
override;
469 :
public css::container::XNameContainer
470 ,
public css::container::XContainer
471 ,
public css::util::XChangesNotifier
478 css::uno::Reference< css::ucb::XSimpleFileAccess3 >
mxSFI;
516 const css::uno::Reference< css::task::XInteractionHandler >& xHandler ) = 0;
538 const css::uno::Type& aType,
539 const css::uno::Reference< css::ucb::XSimpleFileAccess3 >& xSFI
543 const css::uno::Type& aType,
544 const css::uno::Reference< css::ucb::XSimpleFileAccess3 >& xSFI,
545 OUString aLibInfoFileURL,
546 OUString aStorageURL,
551 virtual css::uno::Any SAL_CALL
queryInterface(
const css::uno::Type& rType )
override;
552 virtual void SAL_CALL
acquire() noexcept
override { WeakComponentImplHelper::acquire(); }
553 virtual void SAL_CALL
release() noexcept
override { WeakComponentImplHelper::release(); }
560 virtual css::uno::Any SAL_CALL
getByName(
const OUString& aName )
override;
561 virtual css::uno::Sequence< OUString > SAL_CALL
getElementNames( )
override;
565 virtual void SAL_CALL
replaceByName(
const OUString& aName,
const css::uno::Any& aElement )
override;
568 virtual void SAL_CALL
insertByName(
const OUString& aName,
const css::uno::Any& aElement )
override;
569 virtual void SAL_CALL
removeByName(
const OUString& Name )
override;
572 css::uno::Sequence< css::uno::Type > SAL_CALL
getTypes( )
override;
577 css::container::XContainerListener >& xListener )
override;
579 css::container::XContainerListener >& xListener )
override;
583 css::util::XChangesListener >& xListener )
override;
585 css::util::XChangesListener >& xListener )
override;
608 css::uno::Sequence< css::uno::Reference< css::deployment::XPackage > >
m_aSubPkgSeq;
612 static css::uno::Reference< css::deployment::XPackage >
614 < css::deployment::XPackage >& rPackage,
bool& rbPureDialogLib );
630 css::uno::Reference< css::deployment::XPackage >
632 css::uno::Reference< css::deployment::XPackage >
634 css::uno::Reference< css::deployment::XPackage >
637 css::uno::Reference< css::uno::XComponentContext >
m_xContext;
LibraryContainerMethodGuard(SfxLibraryContainer &_rContainer)
~LibraryContainerMethodGuard()
void setModified(bool _bModified)
::comphelper::OInterfaceContainerHelper3< css::util::XModifyListener > m_aModifyListeners
void addModifyListener(const css::uno::Reference< css::util::XModifyListener > &_rxListener)
::cppu::OWeakObject & m_rEventSource
ModifiableHelper(::cppu::OWeakObject &_rEventSource, ::osl::Mutex &_rMutex)
void removeModifyListener(const css::uno::Reference< css::util::XModifyListener > &_rxListener)
virtual sal_Bool SAL_CALL hasByName(const OUString &aName) override
css::uno::XInterface * mpxEventSource
void insertCheck(const OUString &aName, const css::uno::Any &aElement)
virtual void SAL_CALL replaceByName(const OUString &aName, const css::uno::Any &aElement) override
NameContainer(const css::uno::Type &rType)
std::vector< css::uno::Any > mValues
virtual void SAL_CALL addContainerListener(const css::uno::Reference< css::container::XContainerListener > &xListener) override
NameContainerNameMap mHashMap
::comphelper::OInterfaceContainerHelper3< css::container::XContainerListener > maContainerListeners
virtual void SAL_CALL insertByName(const OUString &aName, const css::uno::Any &aElement) override
virtual void SAL_CALL addChangesListener(const css::uno::Reference< css::util::XChangesListener > &xListener) override
virtual sal_Bool SAL_CALL hasElements() override
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
::comphelper::OInterfaceContainerHelper3< css::util::XChangesListener > maChangesListeners
virtual void SAL_CALL removeChangesListener(const css::uno::Reference< css::util::XChangesListener > &xListener) override
std::unordered_map< OUString, sal_Int32 > NameContainerNameMap
virtual css::uno::Any SAL_CALL getByName(const OUString &aName) override
virtual void SAL_CALL removeByName(const OUString &Name) override
virtual void SAL_CALL removeContainerListener(const css::uno::Reference< css::container::XContainerListener > &xListener) override
void insertNoCheck(const OUString &aName, const css::uno::Any &aElement)
void setEventSource(css::uno::XInterface *pxEventSource)
virtual css::uno::Type SAL_CALL getElementType() override
std::vector< OUString > mNames
css::uno::Reference< css::deployment::XPackage > implGetNextBundledScriptPackage(bool &rbPureDialogLib)
ScriptSubPackageIterator * m_pScriptSubPackageIterator
css::uno::Sequence< css::uno::Reference< css::deployment::XPackage > > m_aSharedPackagesSeq
OUString nextBasicOrDialogLibrary(bool &rbPureDialogLib)
css::uno::Sequence< css::uno::Reference< css::deployment::XPackage > > m_aBundledPackagesSeq
css::uno::Reference< css::uno::XComponentContext > m_xContext
ScriptExtensionIterator()
enum basic::ScriptExtensionIterator::IteratorState m_eState
css::uno::Reference< css::deployment::XPackage > implGetNextSharedScriptPackage(bool &rbPureDialogLib)
css::uno::Sequence< css::uno::Reference< css::deployment::XPackage > > m_aUserPackagesSeq
bool m_bBundledPackagesLoaded
css::uno::Reference< css::deployment::XPackage > implGetNextUserScriptPackage(bool &rbPureDialogLib)
bool m_bUserPackagesLoaded
bool m_bSharedPackagesLoaded
static css::uno::Reference< css::deployment::XPackage > implDetectScriptPackage(const css::uno::Reference< css::deployment::XPackage > &rPackage, bool &rbPureDialogLib)
css::uno::Reference< css::deployment::XPackage > getNextScriptSubPackage(bool &rbPureDialogLib)
css::uno::Sequence< css::uno::Reference< css::deployment::XPackage > > m_aSubPkgSeq
ScriptSubPackageIterator(css::uno::Reference< css::deployment::XPackage > const &xMainPackage)
css::uno::Reference< css::deployment::XPackage > m_xMainPackage
virtual void SAL_CALL setVBACompatibilityMode(sal_Bool _vbacompatmodeon) override
virtual sal_Bool SAL_CALL isLibraryPasswordProtected(const OUString &Name) override
virtual void writeLibraryElement(const css::uno::Reference< css::container::XNameContainer > &xLibrary, const OUString &aElementName, const css::uno::Reference< css::io::XOutputStream > &xOutput)=0
virtual css::uno::Any createEmptyLibraryElement()=0
virtual void SAL_CALL removeVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
rtl_TextEncoding meVBATextEncoding
virtual bool implStorePasswordLibrary(SfxLibrary *pLib, const OUString &aName, const css::uno::Reference< css::embed::XStorage > &xStorage, const css::uno::Reference< css::task::XInteractionHandler > &Handler)
enum basic::SfxLibraryContainer::InitMode meInitMode
bool implLoadLibraryIndexFile(SfxLibrary *pLib, ::xmlscript::LibDescriptor &rLib, const css::uno::Reference< css::embed::XStorage > &xStorage, const OUString &aIndexFileName)
virtual rtl::Reference< SfxLibraryContainer > createInstanceImpl()=0
virtual css::uno::Reference< css::container::XNameContainer > SAL_CALL createLibrary(const OUString &Name) override
virtual OUString SAL_CALL getProjectName() override
virtual sal_Bool SAL_CALL isLibraryLink(const OUString &Name) override
void implStoreLibraryIndexFile(SfxLibrary *pLib, const ::xmlscript::LibDescriptor &rLib, const css::uno::Reference< css::embed::XStorage > &xStorage, std::u16string_view aTargetURL, const css::uno::Reference< css::ucb::XSimpleFileAccess3 > &rToUseSFI)
virtual void SAL_CALL removeLibrary(const OUString &Name) override
virtual sal_Bool SAL_CALL verifyLibraryPassword(const OUString &Name, const OUString &Password) override
OUString maLibElementFileExtension
static void leaveMethod()
virtual void SAL_CALL initialize(const css::uno::Sequence< css::uno::Any > &aArguments) override
void implImportLibDescriptor(SfxLibrary *pLib, ::xmlscript::LibDescriptor const &rLib)
virtual css::uno::Type SAL_CALL getElementType() override
virtual sal_Bool SAL_CALL isModified() override
OUString createAppLibraryFolder(SfxLibrary *pLib, std::u16string_view aName)
virtual void SAL_CALL setLibraryReadOnly(const OUString &Name, sal_Bool bReadOnly) override
virtual css::uno::Any SAL_CALL getRootLocation() override
virtual sal_Int32 SAL_CALL getRunningVBAScripts() override
sal_Int32 mnRunningVBAScripts
virtual bool implLoadPasswordLibrary(SfxLibrary *pLib, const OUString &Name, bool bVerifyPasswordOnly=false)
virtual void SAL_CALL exportLibrary(const OUString &Name, const OUString &URL, const css::uno::Reference< css::task::XInteractionHandler > &Handler) override
virtual void importFromOldStorage(const OUString &aFile)=0
virtual OUString getInfoFileName() const =0
OUString expand_url(const OUString &url)
virtual ~SfxLibraryContainer() override
virtual void SAL_CALL setRootStorage(const css::uno::Reference< css::embed::XStorage > &_rootstorage) override
css::uno::Reference< css::uno::XComponentContext > mxContext
virtual void SAL_CALL addVBAScriptListener(const css::uno::Reference< css::script::vba::XVBAScriptListener > &Listener) override
virtual OUString SAL_CALL getContainerLocationName() override
virtual void SAL_CALL changeLibraryPassword(const OUString &Name, const OUString &OldPassword, const OUString &NewPassword) override
OUString maOldInfoFileName
virtual css::uno::Any importLibraryElement(const css::uno::Reference< css::container::XNameContainer > &xLibrary, const OUString &aElementName, const OUString &aFile, const css::uno::Reference< css::io::XInputStream > &xElementStream)=0
virtual void SAL_CALL disposing() override
virtual void SAL_CALL addVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
virtual void SAL_CALL renameLibrary(const OUString &Name, const OUString &NewName) override
virtual bool implStorePasswordLibrary(SfxLibrary *pLib, const OUString &aName, const css::uno::Reference< css::embed::XStorage > &rStorage, const OUString &aTargetURL, const css::uno::Reference< css::ucb::XSimpleFileAccess3 > &rToUseSFI, const css::uno::Reference< css::task::XInteractionHandler > &Handler)
virtual void SAL_CALL removeVBAScriptListener(const css::uno::Reference< css::script::vba::XVBAScriptListener > &Listener) override
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
virtual void SAL_CALL removeModifyListener(const css::uno::Reference< css::util::XModifyListener > &aListener) override
void implStoreLibrary(SfxLibrary *pLib, std::u16string_view rName, const css::uno::Reference< css::embed::XStorage > &rStorage, std::u16string_view rTargetURL, const css::uno::Reference< css::ucb::XSimpleFileAccess3 > &rToUseSFI, const css::uno::Reference< css::task::XInteractionHandler > &rHandler)
virtual sal_Bool SAL_CALL hasElements() override
virtual OUString getLibrariesDir() const =0
virtual bool isLibraryElementValid(const css::uno::Any &rElement) const =0
void init_Impl(const OUString &rInitialDocumentURL, const css::uno::Reference< css::embed::XStorage > &_rxInitialStorage)
virtual void SAL_CALL removePropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &aListener) override
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
virtual void onNewRootStorage()=0
virtual css::uno::Any SAL_CALL getByName(const OUString &aName) override
void init(const OUString &rInitialDocumentURL, const css::uno::Reference< css::embed::XStorage > &_rxInitialStorage)
virtual void SAL_CALL loadLibrary(const OUString &Name) override
void implStoreLibraryIndexFile(SfxLibrary *pLib, const ::xmlscript::LibDescriptor &rLib, const css::uno::Reference< css::embed::XStorage > &xStorage)
static constexpr OUStringLiteral sVBATextEncodingPropName
css::uno::Reference< css::ucb::XSimpleFileAccess3 > mxSFI
css::uno::Reference< css::embed::XStorage > mxStorage
virtual sal_Bool SAL_CALL getVBACompatibilityMode() override
void implStoreLibrary(SfxLibrary *pLib, std::u16string_view rName, const css::uno::Reference< css::embed::XStorage > &rStorage)
virtual void SAL_CALL setProjectName(const OUString &_projectname) override
virtual OUString SAL_CALL getOriginalLibraryLinkURL(const OUString &Name) override
virtual sal_Bool SAL_CALL isLibraryReadOnly(const OUString &Name) override
virtual void SAL_CALL setModified(sal_Bool bModified) override
VBAScriptListenerContainer maVBAScriptListeners
ModifiableHelper maModifiable
virtual sal_Bool SAL_CALL hasByName(const OUString &aName) override
virtual void SAL_CALL broadcastVBAScriptEvent(sal_Int32 nIdentifier, const OUString &rModuleName) override
virtual rtl::Reference< SfxLibrary > implCreateLibrary(const OUString &aName)=0
virtual sal_Bool SAL_CALL isLibraryPasswordVerified(const OUString &Name) override
virtual void SAL_CALL addPropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &xListener) override
void initializeFromDocument(const css::uno::Reference< css::document::XStorageBasedDocument > &_rxDocument)
virtual void SAL_CALL removeContainerListener(const css::uno::Reference< css::container::XContainerListener > &xListener) override
BasicManager * getBasicManager()
void storeLibraries_Impl(const css::uno::Reference< css::embed::XStorage > &xStorage, bool bComplete)
void checkStorageURL(const OUString &aSourceURL, OUString &aLibInfoFileURL, OUString &aStorageURL, OUString &aUnexpandedStorageURL)
virtual void SAL_CALL storeLibrariesToStorage(const css::uno::Reference< css::embed::XStorage > &RootStorage) override
css::uno::Reference< css::util::XStringSubstitution > mxStringSubstitution
virtual OUString SAL_CALL getImplementationName() override=0
void implScanExtensions()
virtual OUString getOldInfoFileName() const =0
OUString maInitialDocumentURL
virtual void SAL_CALL addContainerListener(const css::uno::Reference< css::container::XContainerListener > &xListener) override
virtual OUString getLibElementFileExtension() const =0
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override=0
SfxLibrary * getImplLib(const OUString &rLibraryName)
virtual rtl::Reference< SfxLibrary > implCreateLibraryLink(const OUString &aName, const OUString &aLibInfoFileURL, const OUString &StorageURL, bool ReadOnly)=0
virtual void SAL_CALL storeLibraries() override
virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL createLibraryLink(const OUString &Name, const OUString &StorageURL, sal_Bool ReadOnly) override
virtual void SAL_CALL addModifyListener(const css::uno::Reference< css::util::XModifyListener > &aListener) override
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
void setBasicManager(BasicManager *pBasMgr)
virtual void _disposing(const css::lang::EventObject &_rSource) override
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
css::uno::WeakReference< css::frame::XModel > mxOwnerDocument
virtual css::uno::Reference< css::embed::XStorage > SAL_CALL getRootStorage() override
virtual sal_Bool SAL_CALL isLibraryLoaded(const OUString &Name) override
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
rtl::Reference< NameContainer > maNameContainer
virtual OUString SAL_CALL getLibraryLinkURL(const OUString &Name) override
virtual void SAL_CALL replaceByName(const OUString &aName, const css::uno::Any &aElement) override
virtual void SAL_CALL removeByName(const OUString &Name) override
void impl_checkReadOnly()
checks whether the lib is readonly, or a readonly link, throws an IllegalArgumentException if so
virtual sal_Bool SAL_CALL hasElements() override
virtual void storeResourcesToStorage(const css::uno::Reference< css::embed::XStorage > &xStorage)=0
bool implIsModified() const
OUString maLibInfoFileURL
virtual void SAL_CALL removeContainerListener(const css::uno::Reference< css::container::XContainerListener > &xListener) override
virtual void SAL_CALL removeChangesListener(const css::uno::Reference< css::util::XChangesListener > &xListener) override
virtual bool isLoadedStorable()
void impl_checkLoaded()
checks whether the library is loaded, throws a LibraryNotLoadedException (wrapped in a WrappedTargetE...
virtual bool isModified()=0
virtual void SAL_CALL acquire() noexcept override
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
virtual void storeResourcesToURL(const OUString &URL, const css::uno::Reference< css::task::XInteractionHandler > &xHandler)=0
virtual void SAL_CALL release() noexcept override
rtl::Reference< NameContainer > maNameContainer
virtual void SAL_CALL addContainerListener(const css::uno::Reference< css::container::XContainerListener > &xListener) override
virtual css::uno::Type SAL_CALL getElementType() override
OUString maOriginalStorageURL
virtual void SAL_CALL insertByName(const OUString &aName, const css::uno::Any &aElement) override
virtual css::uno::Any SAL_CALL getByName(const OUString &aName) override
css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
css::uno::Reference< css::ucb::XSimpleFileAccess3 > mxSFI
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
SfxLibrary(ModifiableHelper &_rModifiable, const css::uno::Type &aType, const css::uno::Reference< css::ucb::XSimpleFileAccess3 > &xSFI)
OUString maLibElementFileExtension
SfxLibrary(ModifiableHelper &_rModifiable, const css::uno::Type &aType, const css::uno::Reference< css::ucb::XSimpleFileAccess3 > &xSFI, OUString aLibInfoFileURL, OUString aStorageURL, bool ReadOnly)
void implSetModified(bool _bIsModified)
void impl_removeWithoutChecks(const OUString &_rElementName)
virtual sal_Bool SAL_CALL hasByName(const OUString &aName) override
virtual void storeResources()=0
virtual void SAL_CALL addChangesListener(const css::uno::Reference< css::util::XChangesListener > &xListener) override
OUString maUnexpandedStorageURL
virtual void storeResourcesAsURL(const OUString &URL, const OUString &NewName)=0
css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override
ModifiableHelper & mrModifiable
virtual bool isLibraryElementValid(const css::uno::Any &rElement) const =0
void removeElementWithoutChecks(const OUString &_rElementName, LibraryContainerAccess)
sal_Int32 addInterface(const css::uno::Reference< ListenerT > &rxIFace)
sal_Int32 removeInterface(const css::uno::Reference< ListenerT > &rxIFace)
mutable::osl::Mutex m_aMutex
::cppu::WeakImplHelper< css::container::XNameContainer, css::container::XContainer, css::util::XChangesNotifier > NameContainer_BASE
::cppu::WeakComponentImplHelper< css::lang::XInitialization, css::script::XStorageBasedLibraryContainer, css::script::XLibraryContainerPassword, css::script::XLibraryContainerExport, css::script::XLibraryContainer3, css::container::XContainer, css::script::XLibraryQueryExecutable, css::script::vba::XVBACompatibility, css::lang::XServiceInfo, css::beans::XPropertySet > SfxLibraryContainer_BASE
::comphelper::OInterfaceContainerHelper3< css::script::vba::XVBAScriptListener > VBAScriptListenerContainer