26#include <com/sun/star/container/XNameContainer.hpp>
27#include <com/sun/star/container/NoSuchElementException.hpp>
28#include <com/sun/star/lang/IllegalArgumentException.hpp>
29#include <com/sun/star/uno/Any.hxx>
30#include <com/sun/star/uno/Type.hxx>
31#include <osl/diagnose.h>
33typedef cppu::WeakImplHelper<
34 css::container::XNameContainer
40 typedef std::map<OUString,T>
map_t;
44 typename map_t::const_iterator
findItem(
const OUString& rName )
57 OSL_ENSURE(
hasItem( rName ),
"unknown item" );
64 OSL_ENSURE( !
hasItem( rName ),
"item already in set" );
70 OSL_ENSURE(
hasItem( rName ),
"item not in set" );
98 const OUString& rName )
override
100 typename map_t::const_iterator aIter =
findItem( rName );
102 throw css::container::NoSuchElementException();
103 return css::uno::Any( aIter->second );
112 const OUString& rName )
override
122 const OUString& rName,
123 const css::uno::Any& aElement )
override
126 if( !(aElement >>= aItem) )
127 throw css::lang::IllegalArgumentException();
129 throw css::container::NoSuchElementException();
138 const OUString& rName,
139 const css::uno::Any& aElement )
override
142 if( !(aElement >>= aItem) )
143 throw css::lang::IllegalArgumentException();
145 throw css::container::ElementExistException();
150 const OUString& rName )
override
153 throw css::container::NoSuchElementException();
cppu::WeakImplHelper< css::container::XNameContainer > NameContainer_t
virtual void SAL_CALL insertByName(const OUString &rName, const css::uno::Any &aElement) override
virtual void SAL_CALL replaceByName(const OUString &rName, const css::uno::Any &aElement) override
std::map< OUString, T > map_t
virtual css::uno::Any SAL_CALL getByName(const OUString &rName) override
virtual css::uno::Type SAL_CALL getElementType() override
void replace(const OUString &rName, const T &aElement)
virtual sal_Bool SAL_CALL hasElements() override
map_t::const_iterator findItem(const OUString &rName)
virtual void SAL_CALL removeByName(const OUString &rName) override
void insert(const OUString &rName, const T &aElement)
bool hasItem(const OUString &rName)
void remove(const OUString &rName)
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
virtual sal_Bool SAL_CALL hasByName(const OUString &rName) override
css::uno::Type const & get()
css::uno::Sequence< typename M::key_type > mapKeysToSequence(M const &map)