/************************************************************************* * * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: elementaccess.hxx,v $ * * $Revision: 1.5 $ * * last change: $Author: rt $ $Date: 2005-09-08 03:12:58 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. * * * GNU Lesser General Public License Version 2.1 * ============================================= * Copyright 2005 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 * ************************************************************************/ #ifndef CONFIGMGR_API_ELEMENTACCESS_HXX_ #define CONFIGMGR_API_ELEMENTACCESS_HXX_ #ifndef _COM_SUN_STAR_CONTAINER_XCHILD_HPP_ #include #endif #ifndef _COM_SUN_STAR_CONTAINER_XNAMED_HPP_ #include #endif #ifndef _COM_SUN_STAR_CONFIGURATION_XTEMPLATEINSTANCE_HPP_ #include #endif #ifndef _COM_SUN_STAR_LANG_XLOCALIZABLE_HPP_ #include #endif #ifndef _COM_SUN_STAR_LANG_XUNOTUNNEL_HPP_ #include #endif #ifndef _COM_SUN_STAR_LANG_XCOMPONENT_HPP_ #include #endif #ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ #include #endif #ifndef _COM_SUN_STAR_UTIL_XCHANGESNOTIFIER_HPP_ #include #endif #ifndef _COM_SUN_STAR_UTIL_XCHANGESBATCH_HPP_ #include #endif #ifndef _CPPUHELPER_IMPLBASE3_HXX_ #include #endif #ifndef _CPPUHELPER_IMPLBASE5_HXX_ #include #endif #ifndef _CPPUHELPER_IMPLBASE6_HXX_ #include #endif namespace configmgr { //----------------------------------------------------------------------------- namespace css = ::com::sun::star; namespace uno = ::com::sun::star::uno; using rtl::OUString; //----------------------------------------------------------------------------- namespace configapi { class NodeAccess; class InnerElement; class SetElement; class RootElement; class UpdateRootElement; } //----------------------------------------------------------------------------- /** implements the interfaces supported by a inner node within the configuration tree that is a plain node (group member).

Is an interface adapter around NodeAccess and InnerElement.

*/ typedef ::cppu::WeakImplHelper3 < css::container::XChild , css::container::XNamed , css::lang::XServiceInfo > InnerElementImplHelper; class BasicInnerElement : public InnerElementImplHelper { typedef InnerElementImplHelper BaseImplHelper; protected: // Destructors virtual ~BasicInnerElement() {} public: // Interface methods // XInterface ('dispose' management) - partial implementation virtual void SAL_CALL acquire() throw(); virtual void SAL_CALL release() throw(); // XTypeProvider (from implhelper) - partial implementation virtual uno::Sequence SAL_CALL getImplementationId( ) throw(uno::RuntimeException); // XChild virtual uno::Reference< uno::XInterface > SAL_CALL getParent( ) throw(uno::RuntimeException); virtual void SAL_CALL // not supported setParent( const uno::Reference< uno::XInterface >& Parent ) throw(css::lang::NoSupportException, css::uno::RuntimeException); // XNamed virtual OUString SAL_CALL getName( ) throw(uno::RuntimeException); virtual void SAL_CALL // not supported (! - missing exception) setName( const OUString& aName ) throw(uno::RuntimeException); // XServiceInfo virtual OUString SAL_CALL getImplementationName( ) throw(uno::RuntimeException); virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw(uno::RuntimeException); virtual uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) throw(uno::RuntimeException); protected: virtual configapi::InnerElement& getElementClass() = 0; virtual configapi::NodeAccess& getNodeAccess() = 0; }; //----------------------------------------------------------------------------- /** implements the interfaces supported by a node within the configuration tree that is a set element (or floating free).

Is an interface adapter around NodeAccess and SetElement.

*/ typedef ::cppu::WeakImplHelper6 < css::container::XChild , css::container::XNamed , css::lang::XComponent , css::lang::XServiceInfo , css::configuration::XTemplateInstance , css::lang::XUnoTunnel > SetElementImplHelper; class BasicSetElement : public SetElementImplHelper { typedef SetElementImplHelper BaseImplHelper; protected: // Destructors virtual ~BasicSetElement() {} public: // Interface methods // XInterface ('dispose' management) - partial implementation virtual void SAL_CALL acquire() throw(); virtual void SAL_CALL release() throw(); // XTypeProvider (from implhelper) - partial implementation virtual uno::Sequence SAL_CALL getImplementationId( ) throw(uno::RuntimeException); // XChild virtual uno::Reference< uno::XInterface > SAL_CALL getParent( ) throw(uno::RuntimeException); virtual void SAL_CALL // currently not supported setParent( const uno::Reference< uno::XInterface >& Parent ) throw(css::lang::NoSupportException, css::uno::RuntimeException); // XNamed virtual OUString SAL_CALL getName( ) throw(uno::RuntimeException); virtual void SAL_CALL // generally not supported (! - missing exception) setName( const OUString& aName ) throw(uno::RuntimeException); // XComponent virtual void SAL_CALL dispose( ) throw(uno::RuntimeException); virtual void SAL_CALL addEventListener( const uno::Reference< css::lang::XEventListener >& xListener ) throw(uno::RuntimeException); virtual void SAL_CALL removeEventListener( const uno::Reference< css::lang::XEventListener >& aListener ) throw(uno::RuntimeException); // XServiceInfo virtual OUString SAL_CALL getImplementationName( ) throw(uno::RuntimeException); virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw(uno::RuntimeException); virtual uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) throw(uno::RuntimeException); // XTemplateInstance virtual OUString SAL_CALL getTemplateName( ) throw(uno::RuntimeException); // XUnoTunnel virtual sal_Int64 SAL_CALL getSomething( const uno::Sequence< sal_Int8 >& aIdentifier ) throw(uno::RuntimeException); protected: virtual configapi::SetElement& getElementClass() = 0; virtual configapi::NodeAccess& getNodeAccess() = 0; }; //----------------------------------------------------------------------------- /** implements the interfaces supported by a node within the configuration that is the root of a read-only access

Is an interface adapter around NodeAccess and SetElement.

*/ typedef ::cppu::WeakImplHelper5 < css::container::XNamed , css::util::XChangesNotifier , css::lang::XComponent , css::lang::XServiceInfo , css::lang::XLocalizable > RootElementImplHelper; class BasicRootElement : public RootElementImplHelper { typedef RootElementImplHelper BaseImplHelper; protected: // Destructors virtual ~BasicRootElement() {} public: // Interface methods // XInterface ('dispose' management) - partial implementation virtual void SAL_CALL acquire() throw(); virtual void SAL_CALL release() throw(); // XTypeProvider (from implhelper) - partial implementation virtual uno::Sequence SAL_CALL getImplementationId( ) throw(uno::RuntimeException); // XNamed virtual OUString SAL_CALL getName( ) throw(uno::RuntimeException); virtual void SAL_CALL // generally not supported (! - missing exception) setName( const OUString& aName ) throw(uno::RuntimeException); // XChangesNotifier virtual void SAL_CALL addChangesListener( const uno::Reference< css::util::XChangesListener >& xListener ) throw(uno::RuntimeException); virtual void SAL_CALL removeChangesListener( const uno::Reference< css::util::XChangesListener >& xListener ) throw(uno::RuntimeException); // XComponent virtual void SAL_CALL dispose( ) throw(uno::RuntimeException); virtual void SAL_CALL addEventListener( const uno::Reference< css::lang::XEventListener >& xListener ) throw(uno::RuntimeException); virtual void SAL_CALL removeEventListener( const uno::Reference< css::lang::XEventListener >& aListener ) throw(uno::RuntimeException); // XServiceInfo virtual OUString SAL_CALL getImplementationName( ) throw(uno::RuntimeException); virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw(uno::RuntimeException); virtual uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) throw(uno::RuntimeException); // XLocalizable virtual css::lang::Locale SAL_CALL getLocale( ) throw(uno::RuntimeException); virtual void SAL_CALL // maybe not supported (! - missing exception) setLocale( const css::lang::Locale& eLocale ) throw(uno::RuntimeException); protected: virtual configapi::RootElement& getElementClass() = 0; virtual configapi::NodeAccess& getNodeAccess() = 0; }; //----------------------------------------------------------------------------- /** implements the interfaces supported by a node within the configuration that is the root of an update access

Is an interface adapter around NodeAccess and SetElement.

*/ typedef ::cppu::WeakImplHelper6 < css::container::XNamed , css::util::XChangesNotifier , css::lang::XComponent , css::lang::XServiceInfo , css::lang::XLocalizable , css::util::XChangesBatch > UpdateElementImplHelper; class BasicUpdateElement : public UpdateElementImplHelper { typedef UpdateElementImplHelper BaseImplHelper; protected: // Destructors virtual ~BasicUpdateElement() {} public: // Interface methods // XInterface ('dispose' management) - partial implementation virtual void SAL_CALL acquire() throw(); virtual void SAL_CALL release() throw(); // XTypeProvider (from implhelper) - partial implementation virtual uno::Sequence SAL_CALL getImplementationId( ) throw(uno::RuntimeException); // XNamed virtual OUString SAL_CALL getName( ) throw(uno::RuntimeException); virtual void SAL_CALL // generally not supported (! - missing exception) setName( const OUString& aName ) throw(uno::RuntimeException); // XChangesNotifier virtual void SAL_CALL addChangesListener( const uno::Reference< css::util::XChangesListener >& xListener ) throw(uno::RuntimeException); virtual void SAL_CALL removeChangesListener( const uno::Reference< css::util::XChangesListener >& xListener ) throw(uno::RuntimeException); // XComponent virtual void SAL_CALL dispose( ) throw(uno::RuntimeException); virtual void SAL_CALL addEventListener( const uno::Reference< css::lang::XEventListener >& xListener ) throw(uno::RuntimeException); virtual void SAL_CALL removeEventListener( const uno::Reference< css::lang::XEventListener >& aListener ) throw(uno::RuntimeException); // XServiceInfo virtual OUString SAL_CALL getImplementationName( ) throw(uno::RuntimeException); virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw(uno::RuntimeException); virtual uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) throw(uno::RuntimeException); // XChangesBatch virtual void SAL_CALL commitChanges( ) throw(css::lang::WrappedTargetException, uno::RuntimeException); virtual sal_Bool SAL_CALL hasPendingChanges( ) throw(uno::RuntimeException); virtual uno::Sequence< css::util::ElementChange > SAL_CALL getPendingChanges( ) throw(uno::RuntimeException); // XLocalizable virtual css::lang::Locale SAL_CALL getLocale( ) throw(uno::RuntimeException); virtual void SAL_CALL // maybe not supported (! - missing exception) setLocale( const css::lang::Locale& eLocale ) throw(uno::RuntimeException); protected: virtual configapi::UpdateRootElement& getElementClass() = 0; virtual configapi::NodeAccess& getNodeAccess() = 0; }; //----------------------------------------------------------------------------- } #endif // CONFIGMGR_API_ELEMENTACCESS_HXX_