20 #ifndef INCLUDED_COMPHELPER_NAMEDVALUECOLLECTION_HXX
21 #define INCLUDED_COMPHELPER_NAMEDVALUECOLLECTION_HXX
25 #include <com/sun/star/uno/Sequence.hxx>
26 #include <com/sun/star/uno/Any.hxx>
27 #include <com/sun/star/beans/PropertyValue.hpp>
28 #include <com/sun/star/beans/NamedValue.hpp>
31 #include <unordered_map>
43 std::unordered_map< OUString, css::uno::Any >
maValues;
79 void assign( const
css::
uno::Sequence<
css::
uno::Any >& _rArguments )
81 impl_assign( _rArguments );
86 impl_assign( css::uno::Sequence< css::beans::NamedValue >() );
95 static bool canExtractFrom( css::uno::Any
const & i_value );
105 ::std::vector< OUString >
119 bool _bOverwriteExisting
143 template <
typename VALUE_TYPE >
144 bool get_ensureType(
const char* _pAsciiValueName, VALUE_TYPE& _out_rValue )
const
149 template <
typename VALUE_TYPE >
150 void get_ensureType(
const OUString& _rValueName, VALUE_TYPE& _out_rValue )
const
158 template <
typename VALUE_TYPE >
159 VALUE_TYPE
getOrDefault(
const char* _pAsciiValueName,
const VALUE_TYPE& _rDefault )
const
161 return getOrDefault( OUString::createFromAscii( _pAsciiValueName ), _rDefault );
164 template <
typename VALUE_TYPE >
165 VALUE_TYPE
getOrDefault(
const OUString& _rValueName,
const VALUE_TYPE& _rDefault )
const
167 VALUE_TYPE retVal( _rDefault );
168 get_ensureType( _rValueName, retVal );
177 const css::uno::Any&
get(
const char* _pAsciiValueName )
const
179 return get( OUString::createFromAscii( _pAsciiValueName ) );
187 const css::uno::Any&
get(
const OUString& _rValueName )
const
189 return impl_get( _rValueName );
193 bool has(
const char* _pAsciiValueName )
const
195 return impl_has( OUString::createFromAscii( _pAsciiValueName ) );
199 bool has(
const OUString& _rValueName )
const
201 return impl_has( _rValueName );
209 template <
typename VALUE_TYPE >
210 bool put(
const char* _pAsciiValueName,
const VALUE_TYPE& _rValue )
212 return impl_put( OUString::createFromAscii( _pAsciiValueName ), css::uno::makeAny( _rValue ) );
220 template <
typename VALUE_TYPE >
221 bool put(
const OUString& _rValueName,
const VALUE_TYPE& _rValue )
223 return impl_put( _rValueName, css::uno::makeAny( _rValue ) );
226 bool put(
const char* _pAsciiValueName,
const css::uno::Any& _rValue )
228 return impl_put( OUString::createFromAscii( _pAsciiValueName ), _rValue );
231 bool put(
const OUString& _rValueName,
const css::uno::Any& _rValue )
233 return impl_put( _rValueName, _rValue );
240 bool remove(
const char* _pAsciiValueName )
242 return impl_remove( OUString::createFromAscii( _pAsciiValueName ) );
249 bool remove(
const OUString& _rValueName )
251 return impl_remove( _rValueName );
259 sal_Int32 operator >>= ( css::uno::Sequence< css::beans::PropertyValue >& _out_rValues )
const;
266 sal_Int32 operator >>= ( css::uno::Sequence< css::beans::NamedValue >& _out_rValues )
const;
270 css::uno::Sequence< css::beans::PropertyValue >
273 css::uno::Sequence< css::beans::PropertyValue > aValues;
280 css::uno::Sequence< css::uno::Any >
283 return impl_wrap< css::beans::PropertyValue >();
288 css::uno::Sequence< css::uno::Any >
291 return impl_wrap< css::beans::NamedValue >();
296 css::uno::Sequence< css::beans::NamedValue >
299 css::uno::Sequence< css::beans::NamedValue > aValues;
305 void impl_assign(
const css::uno::Any& i_rWrappedElements );
306 void impl_assign(
const css::uno::Sequence< css::uno::Any >& _rArguments );
307 void impl_assign(
const css::uno::Sequence< css::beans::PropertyValue >& _rArguments );
308 void impl_assign(
const css::uno::Sequence< css::beans::NamedValue >& _rArguments );
311 const OUString& _rValueName,
312 void* _pValueLocation,
313 const css::uno::Type& _rExpectedValueType
317 impl_get(
const OUString& _rValueName )
const;
319 bool impl_has(
const OUString& _rValueName )
const;
321 bool impl_put(
const OUString& _rValueName,
const css::uno::Any& _rValue );
323 bool impl_remove(
const OUString& _rValueName );
325 template<
class VALUE_TYPE >
328 css::uno::Sequence< VALUE_TYPE > aValues;
330 css::uno::Sequence< css::uno::Any > aWrappedValues( aValues.getLength() );
332 css::uno::Any* pO = aWrappedValues.getArray();
333 const VALUE_TYPE* pV = aValues.getConstArray();
334 const sal_Int32 nLen = aValues.getLength();
335 for( sal_Int32
i = 0;
i < nLen; ++
i )
336 *(pO++) = css::uno::makeAny<VALUE_TYPE>( *(pV++) );
338 return aWrappedValues;
346 #endif // INCLUDED_COMPHELPER_NAMEDVALUECOLLECTION_HXX
css::uno::Sequence< css::beans::NamedValue > getNamedValues() const
transforms the collection into a sequence of NamedValues
css::uno::Sequence< css::uno::Any > getWrappedPropertyValues() const
returns a Sequence< Any >, containing PropertyValues
VALUE_TYPE getOrDefault(const char *_pAsciiValueName, const VALUE_TYPE &_rDefault) const
retrieves a value with a given name, or defaults it to a given value, if it's not present in the coll...
a collection of named values, packed in various formats.
css::uno::Sequence< css::uno::Any > impl_wrap() const
VALUE_TYPE getOrDefault(const OUString &_rValueName, const VALUE_TYPE &_rDefault) const
std::unordered_map< OUString, css::uno::Any > maValues
bool put(const char *_pAsciiValueName, const css::uno::Any &_rValue)
bool put(const OUString &_rValueName, const css::uno::Any &_rValue)
css::uno::Sequence< css::uno::Any > getWrappedNamedValues() const
returns a Sequence< Any >, containing NamedValues
bool get_ensureType(const char *_pAsciiValueName, VALUE_TYPE &_out_rValue) const
retrieves a value with a given name from the collection, if it is present
css::uno::Sequence< css::beans::PropertyValue > getPropertyValues() const
transforms the collection into a sequence of PropertyValues
void get_ensureType(const OUString &_rValueName, VALUE_TYPE &_out_rValue) const
bool put(const OUString &_rValueName, const VALUE_TYPE &_rValue)
puts a value into the collection
bool put(const char *_pAsciiValueName, const VALUE_TYPE &_rValue)
puts a value into the collection
bool has(const OUString &_rValueName) const
determines whether a value with a given name is present in the collection
bool has(const char *_pAsciiValueName) const
determines whether a value with a given name is present in the collection
#define COMPHELPER_DLLPUBLIC