diff options
author | Ivo Hinkelmann <ihi@openoffice.org> | 2007-04-16 15:32:25 +0000 |
---|---|---|
committer | Ivo Hinkelmann <ihi@openoffice.org> | 2007-04-16 15:32:25 +0000 |
commit | e0a9679ac3d1b4c68cf1609a8b77216257c58c13 (patch) | |
tree | f67f4ef05790a7f69645226812b344da12b39ef3 /framework/inc | |
parent | bcf89c9edef94ddf19d029675970f0c8410450b6 (diff) |
INTEGRATION: CWS fwkdbdesign01 (1.5.142); FILE MERGED
2007/03/08 12:40:35 as 1.5.142.2: #i4854# support XNameReplace to change module configuration via API
2007/03/07 08:48:32 as 1.5.142.1: #i45663# module manager supports container queries now
Diffstat (limited to 'framework/inc')
-rw-r--r-- | framework/inc/services/modulemanager.hxx | 71 |
1 files changed, 49 insertions, 22 deletions
diff --git a/framework/inc/services/modulemanager.hxx b/framework/inc/services/modulemanager.hxx index 642f62aa569a..4d77abc741e5 100644 --- a/framework/inc/services/modulemanager.hxx +++ b/framework/inc/services/modulemanager.hxx @@ -4,9 +4,9 @@ * * $RCSfile: modulemanager.hxx,v $ * - * $Revision: 1.5 $ + * $Revision: 1.6 $ * - * last change: $Author: hr $ $Date: 2006-06-19 11:00:39 $ + * last change: $Author: ihi $ $Date: 2007-04-16 16:32:25 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -59,6 +59,10 @@ #include <general.h> #endif +#ifndef __FRAMEWORK_GENERAL_H_ +#include <general.h> +#endif + #ifndef __FRAMEWORK_STDTYPES_H_ #include <stdtypes.h> #endif @@ -86,8 +90,12 @@ #include <com/sun/star/frame/XModuleManager.hpp> #endif -#ifndef _COM_SUN_STAR_CONTAINER_XNAMEACCESS_HPP_ -#include <com/sun/star/container/XNameAccess.hpp> +#ifndef _COM_SUN_STAR_CONTAINER_XNAMEREPLACE_HPP_ +#include <com/sun/star/container/XNameReplace.hpp> +#endif + +#ifndef _COM_SUN_STAR_CONTAINER_XCONTAINERQUERY_HPP_ +#include <com/sun/star/container/XContainerQuery.hpp> #endif //_______________________________________________ @@ -100,10 +108,6 @@ //_______________________________________________ // definition -#ifndef css -namespace css = ::com::sun::star; -#endif - namespace framework { @@ -114,7 +118,8 @@ namespace framework class ModuleManager : public css::lang::XTypeProvider , public css::lang::XServiceInfo , public css::frame::XModuleManager - , public css::container::XNameAccess // => XElementAccess + , public css::container::XNameReplace // => XNameAccess, XElementAccess + , public css::container::XContainerQuery // attention! Must be the first base class to guarentee right initialize lock ... , private ThreadHelpBase , public ::cppu::OWeakObject @@ -156,6 +161,14 @@ class ModuleManager : public css::lang::XTypeProvider css::frame::UnknownModuleException, css::uno::RuntimeException ); + // XNameReplace + virtual void SAL_CALL replaceByName(const ::rtl::OUString& sName , + const css::uno::Any& aValue) + throw (css::lang::IllegalArgumentException , + css::container::NoSuchElementException, + css::lang::WrappedTargetException , + css::uno::RuntimeException ); + // XNameAccess virtual css::uno::Any SAL_CALL getByName(const ::rtl::OUString& sName) throw(css::container::NoSuchElementException, @@ -175,6 +188,12 @@ class ModuleManager : public css::lang::XTypeProvider virtual sal_Bool SAL_CALL hasElements() throw(css::uno::RuntimeException); + // XContainerQuery + virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createSubSetEnumerationByQuery(const ::rtl::OUString& sQuery) + throw(css::uno::RuntimeException); + + virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createSubSetEnumerationByProperties(const css::uno::Sequence< css::beans::NamedValue >& lProperties) + throw(css::uno::RuntimeException); //___________________________________________ // helper @@ -184,11 +203,16 @@ class ModuleManager : public css::lang::XTypeProvider /** @short open the underlying configuration. @descr This method must be called everytimes - a configuartion call is needed. Because + a (reaonly!) configuration is needed. Because method works together with the member m_xCFG, open it on demand and cache it afterwards. + Note: A writable configuration access + must be created explicitly. Otherwise + we cant make sure that broken write requests + wont affect our read access ! + @return [com.sun.star.container.XNameAccess] the configuration object @@ -197,28 +221,31 @@ class ModuleManager : public css::lang::XTypeProvider @threadsafe */ - css::uno::Reference< css::container::XNameAccess > implts_openConfig() + css::uno::Reference< css::container::XNameAccess > implts_getConfig() throw(css::uno::RuntimeException); //--------------------------------------- /** @short makes the real identification of the module. - @descr The interface method identify() tries to full fill the - requirements (means it check for the right interfaces and throw - all supported exceptions). So this method impl_identify() is called - with a valid parameter everytimes and can be concentrated to the real - detection. + @descr It checks for the optional but preferred interface + XModule first. If this module does not exists at the + given component it tries to use XServiceInfo instead. + + Note: This method try to locate a suitable module name. + Nothing else. Selecting the right component and throwing suitable + exceptions must be done outside. - @param xModule + @see identify() + + @param xComponent the module for identification. - @return The identifier (uno service name) of the given module. + @return The identifier of the given module. + Can be empty if given component is not a real module ! - @throw css::frame::UnknownModuleException - if the module has no valid configuration. + @threadsafe */ - ::rtl::OUString impl_identify(const css::uno::Reference< css::lang::XServiceInfo >& xModule) - throw(css::frame::UnknownModuleException); + ::rtl::OUString implts_identify(const css::uno::Reference< css::uno::XInterface >& xComponent); }; } // namespace framework |