summaryrefslogtreecommitdiff
path: root/ucbhelper/inc/ucbhelper/contenthelper.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'ucbhelper/inc/ucbhelper/contenthelper.hxx')
-rw-r--r--ucbhelper/inc/ucbhelper/contenthelper.hxx504
1 files changed, 0 insertions, 504 deletions
diff --git a/ucbhelper/inc/ucbhelper/contenthelper.hxx b/ucbhelper/inc/ucbhelper/contenthelper.hxx
deleted file mode 100644
index e903d97f193a..000000000000
--- a/ucbhelper/inc/ucbhelper/contenthelper.hxx
+++ /dev/null
@@ -1,504 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef _UCBHELPER_CONTENTHELPER_HXX
-#define _UCBHELPER_CONTENTHELPER_HXX
-
-#include <com/sun/star/beans/XPropertyContainer.hpp>
-#include <com/sun/star/beans/XPropertiesChangeNotifier.hpp>
-#include <com/sun/star/ucb/XCommandProcessor.hpp>
-#include <com/sun/star/ucb/XContent.hpp>
-#include <com/sun/star/beans/XPropertySetInfoChangeNotifier.hpp>
-#include <com/sun/star/ucb/XCommandInfoChangeNotifier.hpp>
-#include <com/sun/star/container/XChild.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/lang/XTypeProvider.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/lang/XComponent.hpp>
-#include <com/sun/star/ucb/CommandAbortedException.hpp>
-#include <cppuhelper/weak.hxx>
-
-#include "osl/mutex.hxx"
-#include "rtl/ref.hxx"
-#include <ucbhelper/macros.hxx>
-#include "ucbhelper/ucbhelperdllapi.h"
-
-namespace com { namespace sun { namespace star { namespace ucb {
- struct CommandInfo;
- class XCommandEnvironment;
- class XCommandInfo;
- class XPersistentPropertySet;
-} } } }
-
-namespace com { namespace sun { namespace star { namespace beans {
- struct Property;
- class XPropertySetInfo;
-} } } }
-
-namespace ucbhelper_impl { struct ContentImplHelper_Impl; }
-
-namespace ucbhelper
-{
-
-//=========================================================================
-
-class ContentProviderImplHelper;
-
-/**
- * This is an abstract base class for implementations of the service
- * com.sun.star.ucb.Content. Implementations derived from this class are
- * objects provided by implementations derived from
- * class ucb::ContentProviderImplHelper.
- *
- * Features of the base class implementation:
- * - standard interfaces ( XInterface, XTypeProvider, XServiceInfo )
- * - all required interfaces for service com::sun::star::ucb::Content
- * - all required listener containers
- * ( XComponent, XPropertiesChangeNotifier, XPropertySetInfoChangeNotifier,
- * XCommandInfoChangeNotifier )
- * - XPropertyContainer implementation ( persistence is implemented using
- * service com.sun.star.ucb.Store )
- * - complete XPropertySetInfo implementation ( including Additioanl Core
- * Properties supplied via XPropertyContainer interface )
- * -> protected method: getPropertySetInfo
- * - complete XCommandInfo implementation
- * -> protected method: getCommandInfo
- */
-class UCBHELPER_DLLPUBLIC ContentImplHelper :
- public cppu::OWeakObject,
- public com::sun::star::lang::XTypeProvider,
- public com::sun::star::lang::XServiceInfo,
- public com::sun::star::lang::XComponent,
- public com::sun::star::ucb::XContent,
- public com::sun::star::ucb::XCommandProcessor,
- public com::sun::star::beans::XPropertiesChangeNotifier,
- public com::sun::star::beans::XPropertyContainer,
- public com::sun::star::beans::XPropertySetInfoChangeNotifier,
- public com::sun::star::ucb::XCommandInfoChangeNotifier,
- public com::sun::star::container::XChild
-{
- friend class PropertySetInfo;
- friend class CommandProcessorInfo;
-
- ucbhelper_impl::ContentImplHelper_Impl* m_pImpl;
-
-protected:
- osl::Mutex m_aMutex;
- com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext >
- m_xContext;
- com::sun::star::uno::Reference< com::sun::star::ucb::XContentIdentifier >
- m_xIdentifier;
- rtl::Reference< ContentProviderImplHelper >
- m_xProvider;
- sal_uInt32 m_nCommandId;
-
-private:
- /**
- * Your implementation of this method must return a sequence containing
- * the meta data of the properties supported by the content.
- * Note: If you wish to provide your own implementation of the interface
- * XPropertyContainer ( completely override addContent and removeContent
- * implementation of this base class in this case ), you can supply the
- * meta data for your Additional Core Properties here to get a fully
- * featured getPropertySetInfo method ( see below ).
- *
- * @param xEnv is an environment to use for example, for interactions.
- * @return a sequence containing the property meta data.
- */
- UCBHELPER_DLLPRIVATE
- virtual com::sun::star::uno::Sequence< com::sun::star::beans::Property >
- getProperties( const com::sun::star::uno::Reference<
- com::sun::star::ucb::XCommandEnvironment > & xEnv ) = 0;
-
- /**
- * Your implementation of this method must return a sequence containing
- * the meta data of the commands supported by the content.
- *
- * @param xEnv is an environment to use for example, for interactions.
- * @return a sequence containing the command meta data.
- */
- UCBHELPER_DLLPRIVATE
- virtual com::sun::star::uno::Sequence< com::sun::star::ucb::CommandInfo >
- getCommands( const com::sun::star::uno::Reference<
- com::sun::star::ucb::XCommandEnvironment > & xEnv ) = 0;
-
- /**
- * The implementation of this method shall return the URL of the parent
- * of your content.
- *
- * @return the URL of the parent content or an empty string.
- * Note that not all contents must have one parent. There may
- * be contents with no parent. In that case an empty string must
- * be returned. If your content has more than one parent you may
- * return the URL of one "preferred" parent or an empty string.
- */
- UCBHELPER_DLLPRIVATE virtual OUString getParentURL() = 0;
-
-protected:
- /**
- * This method returns complete meta data for the properties ( including
- * Additional Core Properties supplied via XPropertyContainer interface )
- * supported by the content. To implement the required command
- * "getPropertySetInfo" simply return the return value of this method.
- *
- * @param xEnv is an environment to use for example, for interactions.
- * @param bCache indicates, whether the implemetation should use
- * cached data, if exist.
- * @return an XPropertySetInfo implementation object containing meta data
- * for the properties supported by this content.
- */
- com::sun::star::uno::Reference< com::sun::star::beans::XPropertySetInfo >
- getPropertySetInfo( const com::sun::star::uno::Reference<
- com::sun::star::ucb::XCommandEnvironment > & xEnv,
- sal_Bool bCache = sal_True );
-
- /**
- * This method returns complete meta data for the commands supported by
- * the content. To implement the required command "getCommandInfo" simply
- * return the return value of this method.
- *
- * @param xEnv is an environment to use for example, for interactions.
- * @param bCache indicates, whether the implemetation should use
- * cached data, if exist.
- * @return an XCommandInfo implementation object containing meta data
- * for the commands supported by this content.
- */
- com::sun::star::uno::Reference< com::sun::star::ucb::XCommandInfo >
- getCommandInfo( const com::sun::star::uno::Reference<
- com::sun::star::ucb::XCommandEnvironment > & xEnv,
- sal_Bool bCache = sal_True );
-
- /**
- * This method can be used to propagate changes of property values.
- *
- * @param evt is a sequence of property change events.
- */
- void notifyPropertiesChange(
- const com::sun::star::uno::Sequence<
- com::sun::star::beans::PropertyChangeEvent >& evt ) const;
-
- /**
- * This method can be used to propagate changes of the propertyset
- * info of your content (i.e. this happens if a new property is added
- * to your content via its XPropertyContainer interface). This base class
- * automatically generates events when the propertyset info changes. If
- * you provide your own implementations of addproperty and removeProperty,
- * then you must call "notifyPropertySetInfoChange" by yourself.
- *
- * @param evt is a sequence of property change events.
- */
- void notifyPropertySetInfoChange(
- const com::sun::star::beans::PropertySetInfoChangeEvent& evt ) const;
-
- /**
- * This method can be used to propagate content events.
- *
- * @param evt is a sequence of content events.
- */
- void notifyContentEvent(
- const com::sun::star::ucb::ContentEvent& evt ) const;
-
- /**
- * Use this method to announce the insertion of this content at
- * the end of your implementation of the command "insert". The
- * implementation of is method propagates a ContentEvent( INSERTED ).
- */
- void inserted();
-
- /**
- * Use this method to announce the destruction of this content at
- * the end of your implementation of the command "delete". The
- * implementation of is method propagates a ContentEvent( DELETED )
- * and a ContentEvent( REMOVED ) at the parent of the deleted content,
- * if a parent exists.
- */
- void deleted();
-
- /**
- * Use this method to change the identity of a content. The implementation
- * of this method will replace the content identifier of the content and
- * propagate the appropriate ContentEvent( EXCHANGED ).
- *
- * @param rNewId is the new content identifier for the contant.
- * @return a success indicator.
- */
- sal_Bool exchange( const com::sun::star::uno::Reference<
- com::sun::star::ucb::XContentIdentifier >& rNewId );
-
- /**
- * Use this method to get access to the Additional Core Properties of
- * the content ( added using content's XPropertyContainer interface ).
- * If you supply your own XPropertyContainer implementation, this method
- * will always return an empty propertyset.
- *
- * @param bCreate indicates whether a new propertyset shall be created
- * if it does not exist.
- * @return the implementation of the service
- * com.sun.star.ucb.PersistentPropertySet.
- */
- com::sun::star::uno::Reference<
- com::sun::star::ucb::XPersistentPropertySet >
- getAdditionalPropertySet( sal_Bool bCreate );
-
- /**
- * This method renames the propertyset containing the Additional Core
- * Properties of the content.
- *
- * @param rOldKey is the old key of the propertyset.
- * @param rNewKey is the new key for the propertyset.
- * @param bRecursive is a flag indicating whether propertysets for
- * children described by rOldKey shall be renamed too.
- * @return True, if the operation succeeded - False, otherwise.
- */
- sal_Bool renameAdditionalPropertySet( const OUString& rOldKey,
- const OUString& rNewKey,
- sal_Bool bRecursive );
-
- /**
- * This method copies the propertyset containing the Additional Core
- * Properties of the content.
- *
- * @param rSourceKey is the key of the source propertyset.
- * @param rTargetKey is the key of the target propertyset.
- * @param bRecursive is a flag indicating whether propertysets for
- * children described by rSourceKey shall be copied too.
- * @return True, if the operation succeeded - False, otherwise.
- */
- sal_Bool copyAdditionalPropertySet( const OUString& rSourceKey,
- const OUString& rTargetKey,
- sal_Bool bRecursive );
-
- /**
- * This method removes the propertyset containing the Additional Core
- * Properties of the content.
- *
- * @param bRecursive is a flag indicating whether propertysets for
- * children described by rOldKey shall be removed too.
- * @return True, if the operation succeeded - False, otherwise.
- */
- sal_Bool removeAdditionalPropertySet( sal_Bool bRecursive );
-
-public:
- /**
- * Constructor.
- *
- * Note that the implementation of this ctor registers itself at its
- * content provider. The provider implementation inserts the content
- * in a hash map. So it easyly can be found and reused when the provider
- * is asked for a content.
- *
- * @param rxContext is a Service Manager.
- * @param rxProvider is the provider for the content.
- * @param Identifier is the content identifier for the content.
- */
- ContentImplHelper(
- const com::sun::star::uno::Reference<
- com::sun::star::uno::XComponentContext >& rxContext,
- const rtl::Reference< ContentProviderImplHelper >& rxProvider,
- const com::sun::star::uno::Reference<
- com::sun::star::ucb::XContentIdentifier >& Identifier );
-
- /**
- * Destructor.
- *
- * Note that the implementation of this dtor deregisters itself from its
- * content provider. The provider implementation removes the content
- * from a hash map.
- */
- virtual ~ContentImplHelper();
-
- // XInterface
- XINTERFACE_DECL()
-
- // XTypeProvider
- XTYPEPROVIDER_DECL()
-
- // XServiceInfo
- virtual OUString SAL_CALL
- getImplementationName()
- throw( ::com::sun::star::uno::RuntimeException ) = 0;
- virtual sal_Bool SAL_CALL
- supportsService( const OUString& ServiceName )
- throw( ::com::sun::star::uno::RuntimeException );
- virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL
- getSupportedServiceNames()
- throw( ::com::sun::star::uno::RuntimeException ) = 0;
-
- // XComponent
- virtual void SAL_CALL
- dispose()
- throw( com::sun::star::uno::RuntimeException );
- virtual void SAL_CALL
- addEventListener( const com::sun::star::uno::Reference<
- com::sun::star::lang::XEventListener >& Listener )
- throw( com::sun::star::uno::RuntimeException );
- virtual void SAL_CALL
- removeEventListener( const com::sun::star::uno::Reference<
- com::sun::star::lang::XEventListener >& Listener )
- throw( com::sun::star::uno::RuntimeException );
-
- // XContent
- virtual com::sun::star::uno::Reference<
- com::sun::star::ucb::XContentIdentifier > SAL_CALL
- getIdentifier()
- throw( com::sun::star::uno::RuntimeException );
- virtual OUString SAL_CALL
- getContentType()
- throw( com::sun::star::uno::RuntimeException ) = 0;
- virtual void SAL_CALL
- addContentEventListener(
- const com::sun::star::uno::Reference<
- com::sun::star::ucb::XContentEventListener >& Listener )
- throw( com::sun::star::uno::RuntimeException );
- virtual void SAL_CALL
- removeContentEventListener(
- const com::sun::star::uno::Reference<
- com::sun::star::ucb::XContentEventListener >& Listener )
- throw( com::sun::star::uno::RuntimeException );
-
- // XCommandProcessor
- virtual sal_Int32 SAL_CALL
- createCommandIdentifier()
- throw( com::sun::star::uno::RuntimeException );
- virtual com::sun::star::uno::Any SAL_CALL
- execute( const com::sun::star::ucb::Command& aCommand,
- sal_Int32 CommandId,
- const com::sun::star::uno::Reference<
- com::sun::star::ucb::XCommandEnvironment >& Environment )
- throw( com::sun::star::uno::Exception,
- com::sun::star::ucb::CommandAbortedException,
- com::sun::star::uno::RuntimeException ) = 0;
- virtual void SAL_CALL
- abort( sal_Int32 CommandId )
- throw( com::sun::star::uno::RuntimeException ) = 0;
-
- // XPropertiesChangeNotifier
- virtual void SAL_CALL
- addPropertiesChangeListener(
- const com::sun::star::uno::Sequence< OUString >& PropertyNames,
- const com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertiesChangeListener >& Listener )
- throw( com::sun::star::uno::RuntimeException );
- virtual void SAL_CALL
- removePropertiesChangeListener(
- const com::sun::star::uno::Sequence< OUString >& PropertyNames,
- const com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertiesChangeListener >& Listener )
- throw( com::sun::star::uno::RuntimeException );
-
- // XCommandInfoChangeNotifier
- virtual void SAL_CALL
- addCommandInfoChangeListener(
- const com::sun::star::uno::Reference<
- com::sun::star::ucb::XCommandInfoChangeListener >& Listener )
- throw( com::sun::star::uno::RuntimeException );
- virtual void SAL_CALL
- removeCommandInfoChangeListener(
- const com::sun::star::uno::Reference<
- ::com::sun::star::ucb::XCommandInfoChangeListener >& Listener )
- throw( com::sun::star::uno::RuntimeException );
-
- // XPropertyContainer
-
- /**
- * This method adds a property to the content according to the interface
- * specification. The properties will be stored using the service
- * com.sun.star.ucb.Store.
- *
- * Note: You may provide your own implementation of this method, for
- * instance, if your data source supports adding/removing of properties.
- * Don't forget to return the meta data for these properties in your
- * implementation of getPropertyInfoTable.
- */
- virtual void SAL_CALL
- addProperty( const OUString& Name,
- sal_Int16 Attributes,
- const com::sun::star::uno::Any& DefaultValue )
- throw( com::sun::star::beans::PropertyExistException,
- com::sun::star::beans::IllegalTypeException,
- com::sun::star::lang::IllegalArgumentException,
- com::sun::star::uno::RuntimeException );
-
- /**
- * This method removes a property from the content according to the
- * interface specification. The properties will be stored using the
- * service com.sun.star.ucb.Store.
- *
- * Note: You may provide your own implementation of this method, for
- * instance, if your data source supports adding/removing of properties.
- * Don't forget to return the meta data for these properties in your
- * implementation of getPropertyInfoTable.
- */
- virtual void SAL_CALL
- removeProperty( const OUString& Name )
- throw( com::sun::star::beans::UnknownPropertyException,
- com::sun::star::beans::NotRemoveableException,
- com::sun::star::uno::RuntimeException );
-
- // XPropertySetInfoChangeNotifier
- virtual void SAL_CALL
- addPropertySetInfoChangeListener(
- const com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySetInfoChangeListener >& Listener )
- throw( com::sun::star::uno::RuntimeException );
- virtual void SAL_CALL
- removePropertySetInfoChangeListener(
- const com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySetInfoChangeListener >& Listener )
- throw( com::sun::star::uno::RuntimeException );
-
- // XChild
-
- /**
- * This method returns the content representing the parent of a content,
- * if such a parent exists. The implementation of this method uses your
- * implementation of getParentURL.
- */
- virtual com::sun::star::uno::Reference<
- com::sun::star::uno::XInterface > SAL_CALL
- getParent()
- throw( com::sun::star::uno::RuntimeException );
-
- /**
- * The implementation of this method always throws a NoSupportException.
- */
- virtual void SAL_CALL
- setParent( const com::sun::star::uno::Reference<
- com::sun::star::uno::XInterface >& Parent )
- throw( com::sun::star::lang::NoSupportException,
- com::sun::star::uno::RuntimeException );
-
- //////////////////////////////////////////////////////////////////////
- // Non-interface methods.
- //////////////////////////////////////////////////////////////////////
-
- /**
- * This method returns the provider of the content.
- *
- * @return the provider of the content.
- */
- const rtl::Reference< ContentProviderImplHelper >& getProvider() const
- { return m_xProvider; }
-};
-
-} // namespace ucbhelper
-
-#endif /* !_UCBHELPER_CONTENTHELPER_HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */