LCOV - code coverage report
Current view: top level - include/ucbhelper - contenthelper.hxx (source / functions) Hit Total Coverage
Test: commit 10e77ab3ff6f4314137acd6e2702a6e5c1ce1fae Lines: 2 2 100.0 %
Date: 2014-11-03 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : 
      20             : #ifndef INCLUDED_UCBHELPER_CONTENTHELPER_HXX
      21             : #define INCLUDED_UCBHELPER_CONTENTHELPER_HXX
      22             : 
      23             : #include <com/sun/star/beans/XPropertyContainer.hpp>
      24             : #include <com/sun/star/beans/XPropertiesChangeNotifier.hpp>
      25             : #include <com/sun/star/ucb/XCommandProcessor.hpp>
      26             : #include <com/sun/star/ucb/XContent.hpp>
      27             : #include <com/sun/star/beans/XPropertySetInfoChangeNotifier.hpp>
      28             : #include <com/sun/star/ucb/XCommandInfoChangeNotifier.hpp>
      29             : #include <com/sun/star/container/XChild.hpp>
      30             : #include <com/sun/star/lang/XMultiServiceFactory.hpp>
      31             : #include <com/sun/star/lang/XTypeProvider.hpp>
      32             : #include <com/sun/star/lang/XServiceInfo.hpp>
      33             : #include <com/sun/star/lang/XComponent.hpp>
      34             : #include <com/sun/star/ucb/CommandAbortedException.hpp>
      35             : #include <cppuhelper/weak.hxx>
      36             : 
      37             : #include <osl/mutex.hxx>
      38             : #include <rtl/ref.hxx>
      39             : #include <ucbhelper/macros.hxx>
      40             : #include <ucbhelper/ucbhelperdllapi.h>
      41             : 
      42             : namespace com { namespace sun { namespace star { namespace ucb {
      43             :     struct CommandInfo;
      44             :     class XCommandEnvironment;
      45             :     class XCommandInfo;
      46             :     class XPersistentPropertySet;
      47             : } } } }
      48             : 
      49             : namespace com { namespace sun { namespace star { namespace beans {
      50             :     struct Property;
      51             :     class XPropertySetInfo;
      52             : } } } }
      53             : 
      54             : namespace ucbhelper_impl { struct ContentImplHelper_Impl; }
      55             : 
      56             : namespace ucbhelper
      57             : {
      58             : 
      59             : 
      60             : 
      61             : class ContentProviderImplHelper;
      62             : 
      63             : /**
      64             :   * This is an abstract base class for implementations of the service
      65             :   * com.sun.star.ucb.Content. Implementations derived from this class are
      66             :   * objects provided by implementations derived from
      67             :   * class ucb::ContentProviderImplHelper.
      68             :   *
      69             :   * Features of the base class implementation:
      70             :   * - standard interfaces ( XInterface, XTypeProvider, XServiceInfo )
      71             :   * - all required interfaces for service com::sun::star::ucb::Content
      72             :   * - all required listener containers
      73             :   *   ( XComponent, XPropertiesChangeNotifier, XPropertySetInfoChangeNotifier,
      74             :   *     XCommandInfoChangeNotifier )
      75             :   * - XPropertyContainer implementation ( persistence is implemented using
      76             :   *   service com.sun.star.ucb.Store )
      77             :   * - complete XPropertySetInfo implementation ( including Additioanl Core
      78             :   *   Properties supplied via XPropertyContainer interface )
      79             :   *   -> protected method: getPropertySetInfo
      80             :   * - complete XCommandInfo implementation
      81             :   *    -> protected method: getCommandInfo
      82             :   */
      83             : class UCBHELPER_DLLPUBLIC ContentImplHelper :
      84             :                 public cppu::OWeakObject,
      85             :                 public com::sun::star::lang::XTypeProvider,
      86             :                 public com::sun::star::lang::XServiceInfo,
      87             :                 public com::sun::star::lang::XComponent,
      88             :                 public com::sun::star::ucb::XContent,
      89             :                 public com::sun::star::ucb::XCommandProcessor,
      90             :                 public com::sun::star::beans::XPropertiesChangeNotifier,
      91             :                 public com::sun::star::beans::XPropertyContainer,
      92             :                 public com::sun::star::beans::XPropertySetInfoChangeNotifier,
      93             :                 public com::sun::star::ucb::XCommandInfoChangeNotifier,
      94             :                 public com::sun::star::container::XChild
      95             : {
      96             :     friend class PropertySetInfo;
      97             :     friend class CommandProcessorInfo;
      98             : 
      99             :     ucbhelper_impl::ContentImplHelper_Impl* m_pImpl;
     100             : 
     101             : protected:
     102             :     osl::Mutex                       m_aMutex;
     103             :     com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext >
     104             :                                      m_xContext;
     105             :     com::sun::star::uno::Reference< com::sun::star::ucb::XContentIdentifier >
     106             :                                      m_xIdentifier;
     107             :     rtl::Reference< ContentProviderImplHelper >
     108             :                                      m_xProvider;
     109             :     sal_uInt32                       m_nCommandId;
     110             : 
     111             : private:
     112             :     /**
     113             :       * Your implementation of this method must return a sequence containing
     114             :       * the meta data of the properties supported by the content.
     115             :       * Note: If you wish to provide your own implementation of the interface
     116             :       * XPropertyContainer ( completely override addContent and removeContent
     117             :       * implementation of this base class in this case ), you can supply the
     118             :       * meta data for your Additional Core Properties here to get a fully
     119             :       * featured getPropertySetInfo method ( see below ).
     120             :       *
     121             :       * @param xEnv is an environment to use for example, for interactions.
     122             :       * @return a sequence containing the property meta data.
     123             :       */
     124             :     UCBHELPER_DLLPRIVATE
     125             :     virtual com::sun::star::uno::Sequence< com::sun::star::beans::Property >
     126             :     getProperties( const com::sun::star::uno::Reference<
     127             :                     com::sun::star::ucb::XCommandEnvironment > & xEnv ) = 0;
     128             : 
     129             :     /**
     130             :       * Your implementation of this method must return a sequence containing
     131             :       * the meta data of the commands supported by the content.
     132             :       *
     133             :       * @param xEnv is an environment to use for example, for interactions.
     134             :       * @return a sequence containing the command meta data.
     135             :       */
     136             :     UCBHELPER_DLLPRIVATE
     137             :     virtual com::sun::star::uno::Sequence< com::sun::star::ucb::CommandInfo >
     138             :     getCommands( const com::sun::star::uno::Reference<
     139             :                     com::sun::star::ucb::XCommandEnvironment > & xEnv ) = 0;
     140             : 
     141             :     /**
     142             :       * The implementation of this method shall return the URL of the parent
     143             :       * of your content.
     144             :       *
     145             :       * @return the URL of the parent content or an empty string.
     146             :       *         Note that not all contents must have one parent. There may
     147             :       *         be contents with no parent. In that case an empty string must
     148             :       *         be returned. If your content has more than one parent you may
     149             :       *         return the URL of one "preferred" parent or an empty string.
     150             :       */
     151             :     UCBHELPER_DLLPRIVATE virtual OUString getParentURL() = 0;
     152             : 
     153             : protected:
     154             :     /**
     155             :       * This method returns complete meta data for the properties ( including
     156             :       * Additional Core Properties supplied via XPropertyContainer interface )
     157             :       * supported by the content. To implement the required command
     158             :       * "getPropertySetInfo" simply return the return value of this method.
     159             :       *
     160             :       * @param xEnv is an environment to use for example, for interactions.
     161             :       * @param bCache indicates, whether the implementation should use
     162             :       *        cached data, if exist.
     163             :       * @return an XPropertySetInfo implementation object containing meta data
     164             :       *         for the properties supported by this content.
     165             :       */
     166             :     com::sun::star::uno::Reference< com::sun::star::beans::XPropertySetInfo >
     167             :     getPropertySetInfo( const com::sun::star::uno::Reference<
     168             :                             com::sun::star::ucb::XCommandEnvironment > & xEnv,
     169             :                         bool bCache = true );
     170             : 
     171             :     /**
     172             :       * This method returns complete meta data for the commands supported by
     173             :       * the content. To implement the required command "getCommandInfo" simply
     174             :       * return the return value of this method.
     175             :       *
     176             :       * @param xEnv is an environment to use for example, for interactions.
     177             :       * @param bCache indicates, whether the implementation should use
     178             :       *        cached data, if exist.
     179             :       * @return an XCommandInfo implementation object containing meta data
     180             :       *         for the commands supported by this content.
     181             :       */
     182             :     com::sun::star::uno::Reference< com::sun::star::ucb::XCommandInfo >
     183             :     getCommandInfo( const com::sun::star::uno::Reference<
     184             :                             com::sun::star::ucb::XCommandEnvironment > & xEnv,
     185             :                     bool bCache = true );
     186             : 
     187             :     /**
     188             :       * This method can be used to propagate changes of property values.
     189             :       *
     190             :       * @param evt is a sequence of property change events.
     191             :       */
     192             :     void notifyPropertiesChange(
     193             :         const com::sun::star::uno::Sequence<
     194             :                 com::sun::star::beans::PropertyChangeEvent >& evt ) const;
     195             : 
     196             :     /**
     197             :       * This method can be used to propagate changes of the propertyset
     198             :       * info of your content (i.e. this happens if a new property is added
     199             :       * to your content via its XPropertyContainer interface). This base class
     200             :       * automatically generates events when the propertyset info changes. If
     201             :       * you provide your own implementations of addproperty and removeProperty,
     202             :       * then you must call "notifyPropertySetInfoChange" by yourself.
     203             :       *
     204             :       * @param evt is a sequence of property change events.
     205             :       */
     206             :     void notifyPropertySetInfoChange(
     207             :         const com::sun::star::beans::PropertySetInfoChangeEvent& evt ) const;
     208             : 
     209             :     /**
     210             :       * This method can be used to propagate content events.
     211             :       *
     212             :       * @param evt is a sequence of content events.
     213             :       */
     214             :     void notifyContentEvent(
     215             :             const com::sun::star::ucb::ContentEvent& evt ) const;
     216             : 
     217             :     /**
     218             :       * Use this method to announce the insertion of this content at
     219             :       * the end of your implementation of the command "insert". The
     220             :       * implementation of is method propagates a ContentEvent( INSERTED ).
     221             :       */
     222             :     void inserted();
     223             : 
     224             :     /**
     225             :       * Use this method to announce the destruction of this content at
     226             :       * the end of your implementation of the command "delete". The
     227             :       * implementation of is method propagates a ContentEvent( DELETED )
     228             :       * and a ContentEvent( REMOVED ) at the parent of the deleted content,
     229             :       * if a parent exists.
     230             :       */
     231             :     void deleted();
     232             : 
     233             :     /**
     234             :       * Use this method to change the identity of a content. The implementation
     235             :       * of this method will replace the content identifier of the content and
     236             :       * propagate the appropriate ContentEvent( EXCHANGED ).
     237             :       *
     238             :       * @param  rNewId is the new content identifier for the contant.
     239             :       * @return a success indicator.
     240             :       */
     241             :     bool exchange( const com::sun::star::uno::Reference<
     242             :                         com::sun::star::ucb::XContentIdentifier >& rNewId );
     243             : 
     244             :     /**
     245             :       * Use this method to get access to the Additional Core Properties of
     246             :       * the content ( added using content's XPropertyContainer interface ).
     247             :       * If you supply your own XPropertyContainer implementation, this method
     248             :       * will always return an empty propertyset.
     249             :       *
     250             :       * @param  bCreate indicates whether a new propertyset shall be created
     251             :       *         if it does not exist.
     252             :       * @return the implementation of the service
     253             :       *         com.sun.star.ucb.PersistentPropertySet.
     254             :       */
     255             :     com::sun::star::uno::Reference<
     256             :         com::sun::star::ucb::XPersistentPropertySet >
     257             :     getAdditionalPropertySet( bool bCreate );
     258             : 
     259             :     /**
     260             :       * This method renames the propertyset containing the Additional Core
     261             :       * Properties of the content.
     262             :       *
     263             :       * @param  rOldKey is the old key of the propertyset.
     264             :       * @param  rNewKey is the new key for the propertyset.
     265             :       * @param  bRecursive is a flag indicating whether propertysets for
     266             :       *         children described by rOldKey shall be renamed too.
     267             :       * @return True, if the operation succeeded - False, otherwise.
     268             :       */
     269             :     bool renameAdditionalPropertySet( const OUString& rOldKey,
     270             :                                           const OUString& rNewKey,
     271             :                                           bool bRecursive );
     272             : 
     273             :     /**
     274             :       * This method copies the propertyset containing the Additional Core
     275             :       * Properties of the content.
     276             :       *
     277             :       * @param  rSourceKey is the key of the source propertyset.
     278             :       * @param  rTargetKey is the key of the target propertyset.
     279             :       * @param  bRecursive is a flag indicating whether propertysets for
     280             :       *         children described by rSourceKey shall be copied too.
     281             :       * @return True, if the operation succeeded - False, otherwise.
     282             :       */
     283             :     bool copyAdditionalPropertySet( const OUString& rSourceKey,
     284             :                                         const OUString& rTargetKey,
     285             :                                         bool bRecursive );
     286             : 
     287             :     /**
     288             :       * This method removes the propertyset containing the Additional Core
     289             :       * Properties of the content.
     290             :       *
     291             :       * @param  bRecursive is a flag indicating whether propertysets for
     292             :       *         children described by rOldKey shall be removed too.
     293             :       * @return True, if the operation succeeded - False, otherwise.
     294             :       */
     295             :     bool removeAdditionalPropertySet( bool bRecursive );
     296             : 
     297             : public:
     298             :     /**
     299             :       * Constructor.
     300             :       *
     301             :       * Note that the implementation of this ctor registers itself at its
     302             :       * content provider. The provider implementation inserts the content
     303             :       * in a hash map. So it easily can be found and reused when the provider
     304             :       * is asked for a content.
     305             :       *
     306             :       * @param rxContext is a Service Manager.
     307             :       * @param rxProvider is the provider for the content.
     308             :       * @param Identifier is the content identifier for the content.
     309             :       */
     310             :     ContentImplHelper(
     311             :             const com::sun::star::uno::Reference<
     312             :                 com::sun::star::uno::XComponentContext >& rxContext,
     313             :             const rtl::Reference< ContentProviderImplHelper >& rxProvider,
     314             :             const com::sun::star::uno::Reference<
     315             :                 com::sun::star::ucb::XContentIdentifier >& Identifier );
     316             : 
     317             :     /**
     318             :       * Destructor.
     319             :       *
     320             :       * Note that the implementation of this dtor deregisters itself from its
     321             :       * content provider. The provider implementation removes the content
     322             :       * from a hash map.
     323             :       */
     324             :     virtual ~ContentImplHelper();
     325             : 
     326             :     // XInterface
     327             :     virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type & rType )
     328             :         throw( css::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     329             :     virtual void SAL_CALL acquire()
     330             :         throw() SAL_OVERRIDE;
     331             :     virtual void SAL_CALL release()
     332             :         throw() SAL_OVERRIDE;
     333             : 
     334             :     // XTypeProvider
     335             :     virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL
     336             :     getImplementationId()
     337             :         throw( com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     338             :     virtual com::sun::star::uno::Sequence< com::sun::star::uno::Type > SAL_CALL
     339             :     getTypes()
     340             :         throw( com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     341             : 
     342             :     // XServiceInfo
     343             :     virtual OUString SAL_CALL
     344             :     getImplementationName()
     345             :         throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE = 0;
     346             :     virtual sal_Bool SAL_CALL
     347             :     supportsService( const OUString& ServiceName )
     348             :         throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     349             :     virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL
     350             :     getSupportedServiceNames()
     351             :         throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE = 0;
     352             : 
     353             :     // XComponent
     354             :     virtual void SAL_CALL
     355             :     dispose()
     356             :         throw( com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     357             :     virtual void SAL_CALL
     358             :     addEventListener( const com::sun::star::uno::Reference<
     359             :                         com::sun::star::lang::XEventListener >& Listener )
     360             :         throw( com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     361             :     virtual void SAL_CALL
     362             :     removeEventListener( const com::sun::star::uno::Reference<
     363             :                             com::sun::star::lang::XEventListener >& Listener )
     364             :         throw( com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     365             : 
     366             :     // XContent
     367             :     virtual com::sun::star::uno::Reference<
     368             :                 com::sun::star::ucb::XContentIdentifier > SAL_CALL
     369             :     getIdentifier()
     370             :         throw( com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     371             :     virtual OUString SAL_CALL
     372             :     getContentType()
     373             :         throw( com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE = 0;
     374             :     virtual void SAL_CALL
     375             :     addContentEventListener(
     376             :         const com::sun::star::uno::Reference<
     377             :             com::sun::star::ucb::XContentEventListener >& Listener )
     378             :         throw( com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     379             :     virtual void SAL_CALL
     380             :     removeContentEventListener(
     381             :         const com::sun::star::uno::Reference<
     382             :             com::sun::star::ucb::XContentEventListener >& Listener )
     383             :         throw( com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     384             : 
     385             :     // XCommandProcessor
     386             :     virtual sal_Int32 SAL_CALL
     387             :     createCommandIdentifier()
     388             :         throw( com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     389             :     virtual com::sun::star::uno::Any SAL_CALL
     390             :     execute( const com::sun::star::ucb::Command& aCommand,
     391             :              sal_Int32 CommandId,
     392             :              const com::sun::star::uno::Reference<
     393             :                  com::sun::star::ucb::XCommandEnvironment >& Environment )
     394             :         throw( com::sun::star::uno::Exception,
     395             :                com::sun::star::ucb::CommandAbortedException,
     396             :                com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE = 0;
     397             :     virtual void SAL_CALL
     398             :     abort( sal_Int32 CommandId )
     399             :         throw( com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE = 0;
     400             : 
     401             :     // XPropertiesChangeNotifier
     402             :     virtual void SAL_CALL
     403             :     addPropertiesChangeListener(
     404             :         const com::sun::star::uno::Sequence< OUString >& PropertyNames,
     405             :          const com::sun::star::uno::Reference<
     406             :             com::sun::star::beans::XPropertiesChangeListener >& Listener )
     407             :         throw( com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     408             :     virtual void SAL_CALL
     409             :     removePropertiesChangeListener(
     410             :         const com::sun::star::uno::Sequence< OUString >& PropertyNames,
     411             :         const com::sun::star::uno::Reference<
     412             :             com::sun::star::beans::XPropertiesChangeListener >& Listener )
     413             :         throw( com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     414             : 
     415             :     // XCommandInfoChangeNotifier
     416             :     virtual void SAL_CALL
     417             :     addCommandInfoChangeListener(
     418             :         const com::sun::star::uno::Reference<
     419             :             com::sun::star::ucb::XCommandInfoChangeListener >& Listener )
     420             :         throw( com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     421             :     virtual void SAL_CALL
     422             :     removeCommandInfoChangeListener(
     423             :         const com::sun::star::uno::Reference<
     424             :             ::com::sun::star::ucb::XCommandInfoChangeListener >& Listener )
     425             :         throw( com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     426             : 
     427             :     // XPropertyContainer
     428             : 
     429             :     /**
     430             :       * This method adds a property to the content according to the interface
     431             :       * specification. The properties will be stored using the service
     432             :       * com.sun.star.ucb.Store.
     433             :       *
     434             :       * Note: You may provide your own implementation of this method, for
     435             :       * instance, if your data source supports adding/removing of properties.
     436             :       * Don't forget to return the meta data for these properties in your
     437             :       * implementation of getPropertyInfoTable.
     438             :       */
     439             :     virtual void SAL_CALL
     440             :     addProperty( const OUString& Name,
     441             :                  sal_Int16 Attributes,
     442             :                  const com::sun::star::uno::Any& DefaultValue )
     443             :         throw( com::sun::star::beans::PropertyExistException,
     444             :                com::sun::star::beans::IllegalTypeException,
     445             :                com::sun::star::lang::IllegalArgumentException,
     446             :                com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     447             : 
     448             :     /**
     449             :       * This method removes a property from the content according to the
     450             :       * interface specification. The properties will be stored using the
     451             :       * service com.sun.star.ucb.Store.
     452             :       *
     453             :       * Note: You may provide your own implementation of this method, for
     454             :       * instance, if your data source supports adding/removing of properties.
     455             :       * Don't forget to return the meta data for these properties in your
     456             :       * implementation of getPropertyInfoTable.
     457             :       */
     458             :     virtual void SAL_CALL
     459             :     removeProperty( const OUString& Name )
     460             :         throw( com::sun::star::beans::UnknownPropertyException,
     461             :                com::sun::star::beans::NotRemoveableException,
     462             :                com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     463             : 
     464             :     // XPropertySetInfoChangeNotifier
     465             :     virtual void SAL_CALL
     466             :     addPropertySetInfoChangeListener(
     467             :         const com::sun::star::uno::Reference<
     468             :             com::sun::star::beans::XPropertySetInfoChangeListener >& Listener )
     469             :         throw( com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     470             :     virtual void SAL_CALL
     471             :     removePropertySetInfoChangeListener(
     472             :         const com::sun::star::uno::Reference<
     473             :             com::sun::star::beans::XPropertySetInfoChangeListener >& Listener )
     474             :         throw( com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     475             : 
     476             :     // XChild
     477             : 
     478             :     /**
     479             :       * This method returns the content representing the parent of a content,
     480             :       * if such a parent exists. The implementation of this method uses your
     481             :       * implementation of getParentURL.
     482             :       */
     483             :     virtual com::sun::star::uno::Reference<
     484             :                 com::sun::star::uno::XInterface > SAL_CALL
     485             :     getParent()
     486             :         throw( com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     487             : 
     488             :     /**
     489             :       * The implementation of this method always throws a NoSupportException.
     490             :       */
     491             :     virtual void SAL_CALL
     492             :     setParent( const com::sun::star::uno::Reference<
     493             :                         com::sun::star::uno::XInterface >& Parent )
     494             :         throw( com::sun::star::lang::NoSupportException,
     495             :                com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     496             : 
     497             : 
     498             :     // Non-interface methods.
     499             : 
     500             : 
     501             :     /**
     502             :       * This method returns the provider of the content.
     503             :       *
     504             :       * @return the provider of the content.
     505             :       */
     506          64 :     const rtl::Reference< ContentProviderImplHelper >& getProvider() const
     507          64 :     { return m_xProvider; }
     508             : };
     509             : 
     510             : } // namespace ucbhelper
     511             : 
     512             : #endif /* ! INCLUDED_UCBHELPER_CONTENTHELPER_HXX */
     513             : 
     514             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10