new helper for XPropertySet's
This commit is contained in:
parent
29282c05c1
commit
0b57b9cbb0
6 changed files with 986 additions and 3 deletions
136
comphelper/inc/comphelper/propertysethelper.hxx
Normal file
136
comphelper/inc/comphelper/propertysethelper.hxx
Normal file
|
@ -0,0 +1,136 @@
|
|||
/*************************************************************************
|
||||
*
|
||||
* $RCSfile: propertysethelper.hxx,v $
|
||||
*
|
||||
* $Revision: 1.1 $
|
||||
*
|
||||
* last change: $Author: cl $ $Date: 2001-03-14 15:52:37 $
|
||||
*
|
||||
* 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 _COMPHELPER_PROPERTYSETHELPER_HXX_
|
||||
#define _COMPHELPER_PROPERTYSETHELPER_HXX_
|
||||
|
||||
#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
|
||||
#include <com/sun/star/beans/XPropertySet.hpp>
|
||||
#endif
|
||||
#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSTATE_HPP_
|
||||
#include <com/sun/star/beans/XPropertyState.hpp>
|
||||
#endif
|
||||
#ifndef _COM_SUN_STAR_BEANS_XMULTIPROPERTYSET_HPP_
|
||||
#include <com/sun/star/beans/XMultiPropertySet.hpp>
|
||||
#endif
|
||||
|
||||
//=========================================================================
|
||||
//= property helper classes
|
||||
//=========================================================================
|
||||
|
||||
//... namespace comphelper ................................................
|
||||
namespace comphelper
|
||||
{
|
||||
//.........................................................................
|
||||
|
||||
class PropertySetInfo;
|
||||
struct PropertyMapEntry;
|
||||
class PropertySetHelperImpl;
|
||||
|
||||
class PropertySetHelper : public ::com::sun::star::beans::XPropertySet,
|
||||
public ::com::sun::star::beans::XPropertyState,
|
||||
public ::com::sun::star::beans::XMultiPropertySet
|
||||
{
|
||||
private:
|
||||
PropertySetHelperImpl* mp;
|
||||
|
||||
protected:
|
||||
virtual void _setPropertyValues( const comphelper::PropertyMapEntry** ppEntries, const ::com::sun::star::uno::Any* pValues ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException ) = 0;
|
||||
virtual void _getPropertyValues( const comphelper::PropertyMapEntry** ppEntries, ::com::sun::star::uno::Any* pValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException ) = 0;
|
||||
|
||||
virtual void _getPropertyStates( const comphelper::PropertyMapEntry** ppEntries, ::com::sun::star::beans::PropertyState* pStates ) throw(::com::sun::star::beans::UnknownPropertyException );
|
||||
virtual void _setPropertyToDefault( const comphelper::PropertyMapEntry* pEntry ) throw(::com::sun::star::beans::UnknownPropertyException );
|
||||
virtual ::com::sun::star::uno::Any _getPropertyDefault( const comphelper::PropertyMapEntry* pEntry ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException );
|
||||
|
||||
public:
|
||||
PropertySetHelper( comphelper::PropertySetInfo* pInfo ) throw();
|
||||
virtual ~PropertySetHelper() throw();
|
||||
|
||||
// XPropertySet
|
||||
virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException);
|
||||
virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
|
||||
virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
|
||||
virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
|
||||
virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
|
||||
virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
|
||||
virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
|
||||
|
||||
// XMultiPropertySet
|
||||
// virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException);
|
||||
virtual void SAL_CALL setPropertyValues( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames, const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aValues ) throw(::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
|
||||
virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > SAL_CALL getPropertyValues( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames ) throw(::com::sun::star::uno::RuntimeException);
|
||||
virtual void SAL_CALL addPropertiesChangeListener( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertiesChangeListener >& xListener ) throw(::com::sun::star::uno::RuntimeException);
|
||||
virtual void SAL_CALL removePropertiesChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertiesChangeListener >& xListener ) throw(::com::sun::star::uno::RuntimeException);
|
||||
virtual void SAL_CALL firePropertiesChangeEvent( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertiesChangeListener >& xListener ) throw(::com::sun::star::uno::RuntimeException);
|
||||
|
||||
// XPropertyState
|
||||
virtual ::com::sun::star::beans::PropertyState SAL_CALL getPropertyState( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
|
||||
virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyState > SAL_CALL getPropertyStates( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
|
||||
virtual void SAL_CALL setPropertyToDefault( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
|
||||
virtual ::com::sun::star::uno::Any SAL_CALL getPropertyDefault( const ::rtl::OUString& aPropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
|
||||
};
|
||||
|
||||
//.........................................................................
|
||||
}
|
||||
//... namespace comphelper..................................................
|
||||
|
||||
#endif // _UTL_PROPERTYSETHELPER_HXX_
|
||||
|
135
comphelper/inc/comphelper/propertysetinfo.hxx
Normal file
135
comphelper/inc/comphelper/propertysetinfo.hxx
Normal file
|
@ -0,0 +1,135 @@
|
|||
/*************************************************************************
|
||||
*
|
||||
* $RCSfile: propertysetinfo.hxx,v $
|
||||
*
|
||||
* $Revision: 1.1 $
|
||||
*
|
||||
* last change: $Author: cl $ $Date: 2001-03-14 15:52:37 $
|
||||
*
|
||||
* 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 _COMPHELPER_PROPERTSETINFO_HXX_
|
||||
#define _COMPHELPER_PROPERTSETINFO_HXX_
|
||||
|
||||
#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSETINFO_HPP_
|
||||
#include <com/sun/star/beans/XPropertySetInfo.hpp>
|
||||
#endif
|
||||
|
||||
#ifndef _CPPUHELPER_IMPLBASE1_HXX_
|
||||
#include <cppuhelper/implbase1.hxx>
|
||||
#endif
|
||||
|
||||
#ifndef _COMPHELPER_STLTYPES_HXX_
|
||||
#include <comphelper/stl_types.hxx>
|
||||
#endif
|
||||
|
||||
//=========================================================================
|
||||
//= property helper classes
|
||||
//=========================================================================
|
||||
|
||||
//... namespace comphelper .......................................................
|
||||
namespace comphelper
|
||||
{
|
||||
//.........................................................................
|
||||
|
||||
struct PropertyMapEntry
|
||||
{
|
||||
const sal_Char* mpName;
|
||||
sal_uInt16 mnNameLen;
|
||||
sal_Int32 mnHandle;
|
||||
const com::sun::star::uno::Type* mpType;
|
||||
sal_Int16 mnAttributes;
|
||||
sal_uInt8 mnMemberId;
|
||||
};
|
||||
|
||||
DECLARE_STL_USTRINGACCESS_MAP( PropertyMapEntry*, PropertyMap );
|
||||
|
||||
class PropertyMapImpl;
|
||||
|
||||
/** this class implements a XPropertySetInfo that is initialized with arrays of PropertyMapEntry.
|
||||
It is used by the class PropertySetHelper.
|
||||
*/
|
||||
class PropertySetInfo : public ::cppu::WeakImplHelper1< ::com::sun::star::beans::XPropertySetInfo >
|
||||
{
|
||||
private:
|
||||
PropertyMapImpl* mpMap;
|
||||
public:
|
||||
PropertySetInfo() throw();
|
||||
PropertySetInfo( PropertyMapEntry* pMap ) throw();
|
||||
virtual ~PropertySetInfo() throw();
|
||||
|
||||
/** returns a stl map with all PropertyMapEntry pointer.<p>
|
||||
The key is the property name.
|
||||
*/
|
||||
const PropertyMap* getPropertyMap() const throw();
|
||||
|
||||
/** adds an array of PropertyMapEntry to this instance.<p>
|
||||
The end is marked with a PropertyMapEntry where mpName equals NULL
|
||||
*/
|
||||
void add( PropertyMapEntry* pMap ) throw();
|
||||
|
||||
/** removes an already added PropertyMapEntry which string in mpName equals to aName */
|
||||
void remove( const rtl::OUString& aName ) throw();
|
||||
|
||||
virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property > SAL_CALL getProperties() throw(::com::sun::star::uno::RuntimeException);
|
||||
virtual ::com::sun::star::beans::Property SAL_CALL getPropertyByName( const ::rtl::OUString& aName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
|
||||
virtual sal_Bool SAL_CALL hasPropertyByName( const ::rtl::OUString& Name ) throw(::com::sun::star::uno::RuntimeException);
|
||||
};
|
||||
|
||||
//.........................................................................
|
||||
}
|
||||
//... namespace comphelper .......................................................
|
||||
|
||||
#endif // _UTL_PROPERTSETINFO_HXX_
|
||||
|
139
comphelper/inc/comphelper/servicehelper.hxx
Normal file
139
comphelper/inc/comphelper/servicehelper.hxx
Normal file
|
@ -0,0 +1,139 @@
|
|||
/*************************************************************************
|
||||
*
|
||||
* $RCSfile: servicehelper.hxx,v $
|
||||
*
|
||||
* $Revision: 1.1 $
|
||||
*
|
||||
* last change: $Author: cl $ $Date: 2001-03-14 15:52:37 $
|
||||
*
|
||||
* 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 _UTL_SERVICEHELPER_HXX_
|
||||
#define _UTL_SERVICEHELPER_HXX_
|
||||
|
||||
/** the UNO3_GETIMPLEMENTATION_* macros implement a static helper function
|
||||
that gives access to your implementation for a given interface reference,
|
||||
if possible.
|
||||
|
||||
Example:
|
||||
MyClass* pClass = MyClass::getImplementation( xRef );
|
||||
|
||||
Usage:
|
||||
Put a UNO3_GETIMPLEMENTATION_DECL( classname ) inside your class
|
||||
definitian and UNO3_GETIMPLEMENTATION_IMPL( classname ) inside
|
||||
your cxx file. Your class must inherit ::com::sun::star::uno::XUnoTunnel
|
||||
and export it with queryInterface. Implementation of XUnoTunnel is
|
||||
done by this macro.
|
||||
*/
|
||||
#define UNO3_GETIMPLEMENTATION_DECL( classname ) \
|
||||
static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId() throw(); \
|
||||
static classname* getImplementation( ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xInt ) throw(); \
|
||||
virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException);
|
||||
|
||||
#define UNO3_GETIMPLEMENTATION_BASE_IMPL( classname ) \
|
||||
const ::com::sun::star::uno::Sequence< sal_Int8 > & classname::getUnoTunnelId() throw() \
|
||||
{ \
|
||||
static ::com::sun::star::uno::Sequence< sal_Int8 > * pSeq = 0; \
|
||||
if( !pSeq ) \
|
||||
{ \
|
||||
::osl::Guard< ::osl::Mutex > aGuard( ::osl::Mutex::getGlobalMutex() ); \
|
||||
if( !pSeq ) \
|
||||
{ \
|
||||
static ::com::sun::star::uno::Sequence< sal_Int8 > aSeq( 16 ); \
|
||||
rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True ); \
|
||||
pSeq = &aSeq; \
|
||||
} \
|
||||
} \
|
||||
return *pSeq; \
|
||||
} \
|
||||
\
|
||||
classname* classname::getImplementation( uno::Reference< uno::XInterface > xInt ) throw() \
|
||||
{ \
|
||||
::com::sun::star::uno::Reference< ::com::sun::star::lang::XUnoTunnel > xUT( xInt, ::com::sun::star::uno::UNO_QUERY ); \
|
||||
if( xUT.is() ) \
|
||||
return (classname*)xUT->getSomething( classname::getUnoTunnelId() ); \
|
||||
else \
|
||||
return NULL; \
|
||||
}
|
||||
|
||||
#define UNO3_GETIMPLEMENTATION_IMPL( classname )\
|
||||
UNO3_GETIMPLEMENTATION_BASE_IMPL(classname)\
|
||||
sal_Int64 SAL_CALL classname::getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) throw(::com::sun::star::uno::RuntimeException) \
|
||||
{ \
|
||||
if( rId.getLength() == 16 && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(), \
|
||||
rId.getConstArray(), 16 ) ) \
|
||||
{ \
|
||||
return (sal_Int64)this; \
|
||||
} \
|
||||
return 0; \
|
||||
}
|
||||
|
||||
#define UNO3_GETIMPLEMENTATION2_IMPL( classname, baseclass )\
|
||||
UNO3_GETIMPLEMENTATION_BASE_IMPL(classname)\
|
||||
sal_Int64 SAL_CALL classname::getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) throw(::com::sun::star::uno::RuntimeException) \
|
||||
{ \
|
||||
if( rId.getLength() == 16 && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(), \
|
||||
rId.getConstArray(), 16 ) ) \
|
||||
{ \
|
||||
return (sal_Int64)this; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
return baseclass::getSomething( rId ); \
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
#endif _UTL_SERVICEHELPER_HXX_
|
||||
|
|
@ -2,9 +2,9 @@
|
|||
#
|
||||
# $RCSfile: makefile.mk,v $
|
||||
#
|
||||
# $Revision: 1.5 $
|
||||
# $Revision: 1.6 $
|
||||
#
|
||||
# last change: $Author: pluby $ $Date: 2001-03-02 07:13:20 $
|
||||
# last change: $Author: cl $ $Date: 2001-03-14 15:55:13 $
|
||||
#
|
||||
# The Contents of this file are made available subject to the terms of
|
||||
# either of the following licenses
|
||||
|
@ -73,7 +73,9 @@ ENABLE_EXCEPTIONS=TRUE
|
|||
|
||||
# --- Files -------------------------------------
|
||||
|
||||
SLOFILES= $(SLO)$/composedprops.obj \
|
||||
SLOFILES= $(SLO)$/propertysethelper.obj \
|
||||
$(SLO)$/propertysetinfo.obj \
|
||||
$(SLO)$/composedprops.obj \
|
||||
$(SLO)$/propagg.obj \
|
||||
$(SLO)$/property.obj \
|
||||
$(SLO)$/propmultiplex.obj \
|
||||
|
|
335
comphelper/source/property/propertysethelper.cxx
Normal file
335
comphelper/source/property/propertysethelper.cxx
Normal file
|
@ -0,0 +1,335 @@
|
|||
/*************************************************************************
|
||||
*
|
||||
* $RCSfile: propertysethelper.cxx,v $
|
||||
*
|
||||
* $Revision: 1.1 $
|
||||
*
|
||||
* last change: $Author: cl $ $Date: 2001-03-14 15:55:13 $
|
||||
*
|
||||
* 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 _TOOLS_DEBUG_HXX
|
||||
#include <tools/debug.hxx>
|
||||
#endif
|
||||
|
||||
#include "comphelper/propertysetinfo.hxx"
|
||||
#include "comphelper/propertysethelper.hxx"
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
|
||||
using namespace ::rtl;
|
||||
using namespace ::comphelper;
|
||||
using namespace ::com::sun::star;
|
||||
using namespace ::com::sun::star::uno;
|
||||
using namespace ::com::sun::star::beans;
|
||||
using namespace ::com::sun::star::lang;
|
||||
|
||||
namespace comphelper
|
||||
{
|
||||
class PropertySetHelperImpl
|
||||
{
|
||||
public:
|
||||
PropertyMapEntry* find( const OUString& aName ) const throw();
|
||||
|
||||
PropertySetInfo* mpInfo;
|
||||
};
|
||||
}
|
||||
|
||||
PropertyMapEntry* PropertySetHelperImpl::find( const OUString& aName ) const throw()
|
||||
{
|
||||
PropertyMap::const_iterator aIter = mpInfo->getPropertyMap()->find( aName );
|
||||
|
||||
if( mpInfo->getPropertyMap()->end() != aIter )
|
||||
{
|
||||
return (*aIter).second;
|
||||
}
|
||||
else
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
|
||||
PropertySetHelper::PropertySetHelper( comphelper::PropertySetInfo* pInfo ) throw()
|
||||
{
|
||||
mp = new PropertySetHelperImpl;
|
||||
mp->mpInfo = pInfo;
|
||||
pInfo->acquire();
|
||||
}
|
||||
|
||||
PropertySetHelper::~PropertySetHelper() throw()
|
||||
{
|
||||
mp->mpInfo->release();
|
||||
delete mp;
|
||||
}
|
||||
|
||||
// XPropertySet
|
||||
Reference< XPropertySetInfo > SAL_CALL PropertySetHelper::getPropertySetInfo( ) throw(RuntimeException)
|
||||
{
|
||||
return mp->mpInfo;
|
||||
}
|
||||
|
||||
void SAL_CALL PropertySetHelper::setPropertyValue( const ::rtl::OUString& aPropertyName, const Any& aValue ) throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException)
|
||||
{
|
||||
PropertyMapEntry* aEntries[2];
|
||||
aEntries[0] = mp->find( aPropertyName );
|
||||
|
||||
if( NULL == aEntries[0] )
|
||||
throw UnknownPropertyException();
|
||||
|
||||
aEntries[1] = NULL;
|
||||
|
||||
_setPropertyValues( (const PropertyMapEntry**)aEntries, &aValue );
|
||||
}
|
||||
|
||||
Any SAL_CALL PropertySetHelper::getPropertyValue( const ::rtl::OUString& PropertyName ) throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
|
||||
{
|
||||
PropertyMapEntry* aEntries[2];
|
||||
aEntries[0] = mp->find( PropertyName );
|
||||
|
||||
if( NULL == aEntries[0] )
|
||||
throw UnknownPropertyException();
|
||||
|
||||
aEntries[1] = NULL;
|
||||
|
||||
Any aAny;
|
||||
_getPropertyValues( (const PropertyMapEntry**)aEntries, &aAny );
|
||||
|
||||
return aAny;
|
||||
}
|
||||
|
||||
void SAL_CALL PropertySetHelper::addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const Reference< XPropertyChangeListener >& xListener ) throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
|
||||
{
|
||||
// todo
|
||||
}
|
||||
|
||||
void SAL_CALL PropertySetHelper::removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const Reference< XPropertyChangeListener >& aListener ) throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
|
||||
{
|
||||
// todo
|
||||
}
|
||||
|
||||
void SAL_CALL PropertySetHelper::addVetoableChangeListener( const ::rtl::OUString& PropertyName, const Reference< XVetoableChangeListener >& aListener ) throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
|
||||
{
|
||||
// todo
|
||||
}
|
||||
|
||||
void SAL_CALL PropertySetHelper::removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const Reference< XVetoableChangeListener >& aListener ) throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
|
||||
{
|
||||
// todo
|
||||
}
|
||||
|
||||
// XMultiPropertySet
|
||||
void SAL_CALL PropertySetHelper::setPropertyValues( const Sequence< ::rtl::OUString >& aPropertyNames, const Sequence< Any >& aValues ) throw(PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException)
|
||||
{
|
||||
const sal_Int32 nCount = aPropertyNames.getLength();
|
||||
|
||||
if( nCount != aValues.getLength() )
|
||||
throw IllegalArgumentException();
|
||||
|
||||
if( nCount )
|
||||
{
|
||||
PropertyMapEntry** pEntries = new PropertyMapEntry*[nCount+1];
|
||||
const OUString* pNames = aPropertyNames.getConstArray();
|
||||
|
||||
sal_Bool bUnknown = sal_False;
|
||||
sal_Int32 n;
|
||||
for( n = 0; !bUnknown && ( n < nCount ); n++, pNames++ )
|
||||
{
|
||||
pEntries[n] = mp->find( *pNames );
|
||||
bUnknown = NULL == pEntries[n];
|
||||
}
|
||||
|
||||
if( !bUnknown )
|
||||
_setPropertyValues( (const PropertyMapEntry**)pEntries, aValues.getConstArray() );
|
||||
|
||||
delete pEntries;
|
||||
|
||||
if( bUnknown )
|
||||
throw UnknownPropertyException();
|
||||
}
|
||||
}
|
||||
|
||||
Sequence< Any > SAL_CALL PropertySetHelper::getPropertyValues( const Sequence< ::rtl::OUString >& aPropertyNames ) throw(RuntimeException)
|
||||
{
|
||||
const sal_Int32 nCount = aPropertyNames.getLength();
|
||||
|
||||
Sequence< Any > aValues;
|
||||
if( nCount )
|
||||
{
|
||||
PropertyMapEntry** pEntries = new PropertyMapEntry*[nCount+1];
|
||||
const OUString* pNames = aPropertyNames.getConstArray();
|
||||
|
||||
sal_Bool bUnknown = sal_False;
|
||||
sal_Int32 n;
|
||||
for( n = 0; !bUnknown && ( n < nCount ); n++, pNames++ )
|
||||
{
|
||||
pEntries[n] = mp->find( *pNames );
|
||||
bUnknown = NULL == pEntries[n];
|
||||
}
|
||||
|
||||
if( !bUnknown )
|
||||
_getPropertyValues( (const PropertyMapEntry**)pEntries, aValues.getArray() );
|
||||
|
||||
delete pEntries;
|
||||
|
||||
if( bUnknown )
|
||||
throw UnknownPropertyException();
|
||||
}
|
||||
|
||||
return aValues;
|
||||
}
|
||||
|
||||
void SAL_CALL PropertySetHelper::addPropertiesChangeListener( const Sequence< ::rtl::OUString >& aPropertyNames, const Reference< XPropertiesChangeListener >& xListener ) throw(RuntimeException)
|
||||
{
|
||||
// todo
|
||||
}
|
||||
|
||||
void SAL_CALL PropertySetHelper::removePropertiesChangeListener( const Reference< XPropertiesChangeListener >& xListener ) throw(RuntimeException)
|
||||
{
|
||||
// todo
|
||||
}
|
||||
|
||||
void SAL_CALL PropertySetHelper::firePropertiesChangeEvent( const Sequence< ::rtl::OUString >& aPropertyNames, const Reference< XPropertiesChangeListener >& xListener ) throw(RuntimeException)
|
||||
{
|
||||
// todo
|
||||
}
|
||||
|
||||
// XPropertyState
|
||||
PropertyState SAL_CALL PropertySetHelper::getPropertyState( const ::rtl::OUString& PropertyName ) throw(UnknownPropertyException, RuntimeException)
|
||||
{
|
||||
PropertyMapEntry* aEntries[2];
|
||||
|
||||
aEntries[0] = mp->find( PropertyName );
|
||||
if( aEntries[0] == NULL )
|
||||
throw UnknownPropertyException();
|
||||
|
||||
aEntries[1] = NULL;
|
||||
|
||||
PropertyState aState;
|
||||
_getPropertyStates( (const PropertyMapEntry**)aEntries, &aState );
|
||||
|
||||
return aState;
|
||||
}
|
||||
|
||||
Sequence< PropertyState > SAL_CALL PropertySetHelper::getPropertyStates( const Sequence< ::rtl::OUString >& aPropertyName ) throw(UnknownPropertyException, RuntimeException)
|
||||
{
|
||||
const sal_Int32 nCount = aPropertyName.getLength();
|
||||
|
||||
Sequence< PropertyState > aStates( nCount );
|
||||
|
||||
if( nCount )
|
||||
{
|
||||
const OUString* pNames = aPropertyName.getConstArray();
|
||||
|
||||
sal_Bool bUnknown = sal_False;
|
||||
|
||||
PropertyMapEntry** pEntries = new PropertyMapEntry*[nCount+1];
|
||||
|
||||
sal_Int32 n;
|
||||
for( n = 0; !bUnknown && (n < nCount); n++, pNames++ )
|
||||
{
|
||||
pEntries[n] = mp->find( *pNames );
|
||||
bUnknown = NULL == pEntries[n];
|
||||
}
|
||||
|
||||
pEntries[nCount] = NULL;
|
||||
|
||||
if( !bUnknown )
|
||||
_getPropertyStates( (const PropertyMapEntry**)pEntries, aStates.getArray() );
|
||||
|
||||
delete pEntries;
|
||||
|
||||
if( bUnknown )
|
||||
throw UnknownPropertyException();
|
||||
}
|
||||
|
||||
return aStates;
|
||||
}
|
||||
|
||||
void SAL_CALL PropertySetHelper::setPropertyToDefault( const ::rtl::OUString& PropertyName ) throw(UnknownPropertyException, RuntimeException)
|
||||
{
|
||||
PropertyMapEntry *pEntry = mp->find( PropertyName );
|
||||
if( NULL == pEntry )
|
||||
throw UnknownPropertyException();
|
||||
|
||||
_setPropertyToDefault( pEntry );
|
||||
}
|
||||
|
||||
Any SAL_CALL PropertySetHelper::getPropertyDefault( const ::rtl::OUString& aPropertyName ) throw(UnknownPropertyException, WrappedTargetException, RuntimeException)
|
||||
{
|
||||
PropertyMapEntry* pEntry = mp->find( aPropertyName );
|
||||
if( NULL == pEntry )
|
||||
throw UnknownPropertyException();
|
||||
|
||||
return _getPropertyDefault( pEntry );
|
||||
}
|
||||
|
||||
void PropertySetHelper::_getPropertyStates( const comphelper::PropertyMapEntry** ppEntries, PropertyState* pStates ) throw(UnknownPropertyException )
|
||||
{
|
||||
OSL_ENSHURE( sal_False, "you have to implement this yourself!");
|
||||
}
|
||||
|
||||
void PropertySetHelper::_setPropertyToDefault( const comphelper::PropertyMapEntry* pEntry ) throw(UnknownPropertyException )
|
||||
{
|
||||
OSL_ENSHURE( sal_False, "you have to implement this yourself!");
|
||||
}
|
||||
|
||||
Any PropertySetHelper::_getPropertyDefault( const comphelper::PropertyMapEntry* pEntry ) throw(UnknownPropertyException, WrappedTargetException )
|
||||
{
|
||||
OSL_ENSHURE( sal_False, "you have to implement this yourself!");
|
||||
|
||||
Any aAny;
|
||||
return aAny;
|
||||
}
|
236
comphelper/source/property/propertysetinfo.cxx
Normal file
236
comphelper/source/property/propertysetinfo.cxx
Normal file
|
@ -0,0 +1,236 @@
|
|||
/*************************************************************************
|
||||
*
|
||||
* $RCSfile: propertysetinfo.cxx,v $
|
||||
*
|
||||
* $Revision: 1.1 $
|
||||
*
|
||||
* last change: $Author: cl $ $Date: 2001-03-14 15:55:13 $
|
||||
*
|
||||
* 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): _______________________________________
|
||||
*
|
||||
*
|
||||
************************************************************************/
|
||||
|
||||
#include "comphelper/propertysetinfo.hxx"
|
||||
|
||||
using namespace ::rtl;
|
||||
using namespace ::comphelper;
|
||||
using namespace ::com::sun::star;
|
||||
using namespace ::com::sun::star::uno;
|
||||
using namespace ::com::sun::star::beans;
|
||||
using namespace ::com::sun::star::lang;
|
||||
|
||||
namespace comphelper
|
||||
{
|
||||
class PropertyMapImpl
|
||||
{
|
||||
public:
|
||||
PropertyMapImpl() throw();
|
||||
virtual ~PropertyMapImpl() throw();
|
||||
|
||||
void add( PropertyMapEntry* pMap ) throw();
|
||||
void remove( const OUString& aName ) throw();
|
||||
|
||||
Sequence< Property > getProperties() throw();
|
||||
|
||||
const PropertyMap* getPropertyMap() const throw();
|
||||
|
||||
Property getPropertyByName( const OUString& aName ) throw( UnknownPropertyException );
|
||||
sal_Bool hasPropertyByName( const OUString& aName ) throw();
|
||||
|
||||
private:
|
||||
PropertyMap maPropertyMap;
|
||||
Sequence< Property > maProperties;
|
||||
};
|
||||
}
|
||||
|
||||
PropertyMapImpl::PropertyMapImpl() throw()
|
||||
{
|
||||
}
|
||||
|
||||
PropertyMapImpl::~PropertyMapImpl() throw()
|
||||
{
|
||||
}
|
||||
|
||||
void PropertyMapImpl::add( PropertyMapEntry* pMap ) throw()
|
||||
{
|
||||
while( pMap->mpName )
|
||||
{
|
||||
OUString aName( pMap->mpName, pMap->mnNameLen, RTL_TEXTENCODING_ASCII_US );
|
||||
|
||||
#ifndef PRODUCT
|
||||
PropertyMap::iterator aIter = maPropertyMap.find( aName );
|
||||
if( aIter != maPropertyMap.end() )
|
||||
{
|
||||
OSL_ENSHURE( sal_False, "Warning: PropertyMapEntry added twice, possible error!");
|
||||
}
|
||||
#endif
|
||||
if( NULL == pMap->mpType )
|
||||
{
|
||||
OSL_ENSHURE( sal_False, "No type in PropertyMapEntry!");
|
||||
pMap->mpType = &::getCppuType((const sal_Int32*)0);
|
||||
}
|
||||
|
||||
maPropertyMap[aName] = pMap;
|
||||
|
||||
if( maProperties.getLength() )
|
||||
maProperties.realloc( 0 );
|
||||
|
||||
pMap = &pMap[1];
|
||||
}
|
||||
}
|
||||
|
||||
void PropertyMapImpl::remove( const OUString& aName ) throw()
|
||||
{
|
||||
maPropertyMap.erase( aName );
|
||||
|
||||
if( maProperties.getLength() )
|
||||
maProperties.realloc( 0 );
|
||||
}
|
||||
|
||||
Sequence< Property > PropertyMapImpl::getProperties() throw()
|
||||
{
|
||||
// maybe we have to generate the properties after
|
||||
// a change in the property map or at first call
|
||||
// to getProperties
|
||||
if( maProperties.getLength() != (sal_Int32)maPropertyMap.size() )
|
||||
{
|
||||
maProperties = Sequence< Property >( maPropertyMap.size() );
|
||||
Property* pProperties = maProperties.getArray();
|
||||
|
||||
PropertyMap::iterator aIter = maPropertyMap.begin();
|
||||
const PropertyMap::iterator aEnd = maPropertyMap.end();
|
||||
while( aIter != aEnd )
|
||||
{
|
||||
PropertyMapEntry* pEntry = (*aIter).second;
|
||||
|
||||
pProperties->Name = OUString( pEntry->mpName, pEntry->mnNameLen, RTL_TEXTENCODING_ASCII_US );
|
||||
pProperties->Handle = pEntry->mnHandle;
|
||||
pProperties->Type = *pEntry->mpType;
|
||||
pProperties->Attributes = pEntry->mnAttributes;
|
||||
|
||||
pProperties++;
|
||||
aIter++;
|
||||
}
|
||||
}
|
||||
|
||||
return maProperties;
|
||||
}
|
||||
|
||||
const PropertyMap* PropertyMapImpl::getPropertyMap() const throw()
|
||||
{
|
||||
return &maPropertyMap;
|
||||
}
|
||||
|
||||
Property PropertyMapImpl::getPropertyByName( const OUString& aName ) throw( UnknownPropertyException )
|
||||
{
|
||||
PropertyMap::iterator aIter = maPropertyMap.find( aName );
|
||||
|
||||
if( maPropertyMap.end() == aIter )
|
||||
throw UnknownPropertyException();
|
||||
|
||||
PropertyMapEntry* pEntry = (*aIter).second;
|
||||
|
||||
return Property( aName, pEntry->mnHandle, *pEntry->mpType, pEntry->mnAttributes );
|
||||
}
|
||||
|
||||
sal_Bool PropertyMapImpl::hasPropertyByName( const OUString& aName ) throw()
|
||||
{
|
||||
return maPropertyMap.find( aName ) != maPropertyMap.end();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
|
||||
PropertySetInfo::PropertySetInfo() throw()
|
||||
{
|
||||
mpMap = new PropertyMapImpl();
|
||||
}
|
||||
|
||||
PropertySetInfo::PropertySetInfo( PropertyMapEntry* pMap ) throw()
|
||||
{
|
||||
mpMap = new PropertyMapImpl();
|
||||
mpMap->add( pMap );
|
||||
}
|
||||
|
||||
PropertySetInfo::~PropertySetInfo() throw()
|
||||
{
|
||||
delete mpMap;
|
||||
}
|
||||
|
||||
void PropertySetInfo::add( PropertyMapEntry* pMap ) throw()
|
||||
{
|
||||
mpMap->add( pMap );
|
||||
}
|
||||
|
||||
void PropertySetInfo::remove( const rtl::OUString& aName ) throw()
|
||||
{
|
||||
mpMap->remove( aName );
|
||||
}
|
||||
|
||||
Sequence< ::com::sun::star::beans::Property > SAL_CALL PropertySetInfo::getProperties() throw(::com::sun::star::uno::RuntimeException)
|
||||
{
|
||||
return mpMap->getProperties();
|
||||
}
|
||||
|
||||
Property SAL_CALL PropertySetInfo::getPropertyByName( const ::rtl::OUString& aName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException)
|
||||
{
|
||||
return mpMap->getPropertyByName( aName );
|
||||
}
|
||||
|
||||
sal_Bool SAL_CALL PropertySetInfo::hasPropertyByName( const ::rtl::OUString& Name ) throw(::com::sun::star::uno::RuntimeException)
|
||||
{
|
||||
return mpMap->hasPropertyByName( Name );
|
||||
}
|
||||
|
||||
const PropertyMap* PropertySetInfo::getPropertyMap() const throw()
|
||||
{
|
||||
return mpMap->getPropertyMap();
|
||||
}
|
Loading…
Reference in a new issue