diff options
author | Rüdiger Timm <rt@openoffice.org> | 2004-03-30 13:55:41 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2004-03-30 13:55:41 +0000 |
commit | 2a6d7b6b1d05ea54fc814bc14cc5b9da7e744ddc (patch) | |
tree | 463c095c8dad03c4ba900038d3a3a9a939a199fa /configmgr/source | |
parent | 2c12fb698df586cf6eea7004966fb8af4b3f6180 (diff) |
INTEGRATION: CWS cfg04 (1.1.2); FILE ADDED
2004/03/24 14:43:24 jb 1.1.2.2: #116072# UNO methods require SAL_CALL
2004/02/26 13:31:50 ssmith 1.1.2.1: #114070# adding backendhelper support
Diffstat (limited to 'configmgr/source')
-rw-r--r-- | configmgr/source/backendhelper/backendlayerhelper.hxx | 213 |
1 files changed, 213 insertions, 0 deletions
diff --git a/configmgr/source/backendhelper/backendlayerhelper.hxx b/configmgr/source/backendhelper/backendlayerhelper.hxx new file mode 100644 index 000000000000..f1dcb3567212 --- /dev/null +++ b/configmgr/source/backendhelper/backendlayerhelper.hxx @@ -0,0 +1,213 @@ +/************************************************************************* + * + * $RCSfile: backendlayerhelper.hxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: rt $ $Date: 2004-03-30 14:55:41 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef CONFIGMGR_BACKENDHELPER_BACKENDLAYERHELPER_HXX_ +#define CONFIGMGR_BACKENDHELPER_BACKENDLAYERHELPER_HXX_ + +#ifndef _COM_SUN_STAR_CONFIGURATION_BACKEND_XLAYERCONTENTDESCRIBER_HPP_ +#include <com/sun/star/configuration/backend/XLayerContentDescriber.hpp> +#endif + + +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif // _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ + +#ifndef _COM_SUN_STAR_UNO_XCOMPONENTCONTEXT_HPP_ +#include <com/sun/star/uno/XComponentContext.hpp> +#endif + +#ifndef _CPPUHELPER_COMPBASE2_HXX_ +#include <cppuhelper/compbase2.hxx> +#endif // _CPPUHELPER_COMPBASE2_HXX_ + +namespace configmgr { namespace backendhelper { + +namespace css = com::sun::star ; +namespace uno = css::uno ; +namespace lang = css::lang ; +namespace backend = css::configuration::backend ; +//------------------------------------------------------------------------------ + +typedef cppu::WeakComponentImplHelper2<backend::XLayerContentDescriber, + lang::XServiceInfo> BackendBase ; + +/** + * Implements the LayerContentDescriber service. + * Describes a set of configuration data to an XLayerHandler + * Object + */ +class BackendLayerHelper : public BackendBase { +public : + /** + Service constructor from a service factory. + @param xContext component context + */ + BackendLayerHelper(const uno::Reference<uno::XComponentContext>& xContext) ; + + /** Destructor */ + ~BackendLayerHelper(void) ; + + + // XServiceInfo + virtual rtl::OUString SAL_CALL + getImplementationName( ) + throw (uno::RuntimeException) ; + + virtual sal_Bool SAL_CALL + supportsService( const rtl::OUString& aServiceName ) + throw (uno::RuntimeException) ; + + virtual uno::Sequence<rtl::OUString> SAL_CALL + getSupportedServiceNames( ) + throw (uno::RuntimeException) ; + + + //XLayerContentDescriber + virtual void SAL_CALL + describeLayer( const uno::Reference< backend::XLayerHandler >& xHandler, + const uno::Sequence< backend::PropertyInfo >& aPropertyInfos ) + throw (lang::NullPointerException, + backend::MalformedDataException, + uno::RuntimeException); + + /** + Provides the implementation name. + + @return implementation name + */ + static rtl::OUString SAL_CALL getBackendLayerHelperName(void) ; + /** + Provides the supported services names + + @return service names + */ + static uno::Sequence<rtl::OUString> SAL_CALL getBackendLayerHelperServiceNames(void) ; +private: + osl::Mutex mMutex; + +} ; +//------------------------------------------------------------------------------ +class OONode; +class OOProperty; + +/** + Base class for representing OO properties and nodes +*/ +class IOONode +{ +public: + virtual OONode* getComposite(){return NULL;} + virtual ~IOONode(){}; + virtual OOProperty* asOOProperty(){return NULL;} + rtl::OUString getName(){return mName;} + void setName(const rtl::OUString& sName){mName = sName;} +protected: + IOONode(const rtl::OUString& sName); +private: + rtl::OUString mName; +}; +//------------------------------------------------------------------------------ +class OONode :public IOONode +{ +public: + + OONode(const rtl::OUString& sName); + OONode(); + ~OONode(); + + IOONode* addChild(IOONode* aChild); + OONode* getComposite(){return this;} + const std::vector<IOONode*>& getChildren(); + IOONode* getChild(const rtl::OUString& aChildName); + +private: + typedef std::vector<IOONode*> ChildList; + ChildList mChildList; +}; +//------------------------------------------------------------------------------ +class OOProperty :public IOONode +{ +public: + OOProperty(const rtl::OUString& sName, + const rtl::OUString& sPropType, + const uno::Any& aPropValue, + sal_Bool bProtected); + ~OOProperty(){}; + + const rtl::OUString& getType(){return mPropType;} + uno::Any getValue(){return mPropValue;} + sal_Bool isProtected(){return mbProtected;} + OOProperty* asOOProperty(){return this;} + +private: + rtl::OUString mPropType; + uno::Any mPropValue; + sal_Bool mbProtected; +}; +//------------------------------------------------------------------------------ + + +} } // configmgr.backendhelper + +#endif // CONFIGMGR_BACKENDHELPER_BACKENDLAYERHELPER_HXX_ + + |