diff options
author | mst <mst@openoffice.org> | 2011-09-17 22:41:28 +0000 |
---|---|---|
committer | Thorsten Behrens <tbehrens@suse.com> | 2011-11-29 17:57:29 +0100 |
commit | 1b056c65f6d612a00eefe8824c854e4577e4f4be (patch) | |
tree | 4f8d0daa2148cfce3bf925e243925969c152354d /comphelper | |
parent | c9e1a120fff37a9d87c4e193cec804d2ac909f90 (diff) |
fs34c: #i117625# when assigning events, only throw if there is an invalid type given, *not* if the type is correct, but the sequence is merely empty
* found as LGPLv3-only fix at svn rev 1172123 (http://svn.apache.org/viewvc?view=revision&revision=1172123)
Diffstat (limited to 'comphelper')
-rw-r--r-- | comphelper/inc/comphelper/namedvaluecollection.hxx | 8 | ||||
-rw-r--r-- | comphelper/source/misc/namedvaluecollection.cxx | 13 |
2 files changed, 21 insertions, 0 deletions
diff --git a/comphelper/inc/comphelper/namedvaluecollection.hxx b/comphelper/inc/comphelper/namedvaluecollection.hxx index 6ec12a6aa5c2..bfaa1a017bde 100644 --- a/comphelper/inc/comphelper/namedvaluecollection.hxx +++ b/comphelper/inc/comphelper/namedvaluecollection.hxx @@ -118,6 +118,14 @@ namespace comphelper impl_assign( ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >() ); } + /** determines whether or not named values can be extracted from the given value + + @return + <TRUE/> if and only if the given <code>Any</code> contains a <code>NamedValue</code>, a + <code>PropertyValue</code>, or a sequence thereof. + */ + static bool canExtractFrom( ::com::sun::star::uno::Any const & i_value ); + /// returns the number of elements in the collection size_t size() const; diff --git a/comphelper/source/misc/namedvaluecollection.cxx b/comphelper/source/misc/namedvaluecollection.cxx index a9eaccb3223b..85c2883764fd 100644 --- a/comphelper/source/misc/namedvaluecollection.cxx +++ b/comphelper/source/misc/namedvaluecollection.cxx @@ -127,6 +127,19 @@ namespace comphelper } //-------------------------------------------------------------------- + bool NamedValueCollection::canExtractFrom( ::com::sun::star::uno::Any const & i_value ) + { + Type const & aValueType = i_value.getValueType(); + if ( aValueType.equals( ::cppu::UnoType< PropertyValue >::get() ) + || aValueType.equals( ::cppu::UnoType< NamedValue >::get() ) + || aValueType.equals( ::cppu::UnoType< Sequence< PropertyValue > >::get() ) + || aValueType.equals( ::cppu::UnoType< Sequence< NamedValue > >::get() ) + ) + return true; + return false; + } + + //-------------------------------------------------------------------- NamedValueCollection& NamedValueCollection::merge( const NamedValueCollection& _rAdditionalValues, bool _bOverwriteExisting ) { for ( NamedValueRepository::const_iterator namedValue = _rAdditionalValues.m_pImpl->aValues.begin(); |