summaryrefslogtreecommitdiff
path: root/xmloff/source
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2012-03-19 11:52:27 +0000
committerCaolán McNamara <caolanm@redhat.com>2012-03-20 12:57:33 +0000
commit260ed4ed0317f4f16a675dde48750bc40923bc96 (patch)
treecdcb941434367892497d31545a4dc6d8f7c9e12c /xmloff/source
parenta66ce1981ebb64edea067f8857df377486cafdba (diff)
map of kind+name -> new-name
Diffstat (limited to 'xmloff/source')
-rw-r--r--xmloff/source/core/i18nmap.cxx98
1 files changed, 12 insertions, 86 deletions
diff --git a/xmloff/source/core/i18nmap.cxx b/xmloff/source/core/i18nmap.cxx
index 0d5a97022b4d..ea4db31c67f7 100644
--- a/xmloff/source/core/i18nmap.cxx
+++ b/xmloff/source/core/i18nmap.cxx
@@ -31,96 +31,22 @@
#include <svl/svarray.hxx>
#include "xmloff/i18nmap.hxx"
-using ::rtl::OUString;
-
-class SvI18NMapEntry_Impl
-{
- sal_uInt16 nKind;
- OUString aName;
- OUString aNewName;
-
-public:
-
- const OUString& GetNewName() const { return aNewName; }
-
- SvI18NMapEntry_Impl( sal_uInt16 nKnd, const OUString& rName,
- const OUString& rNewName ) :
- nKind( nKnd ),
- aName( rName ),
- aNewName( rNewName )
- {}
-
- SvI18NMapEntry_Impl( sal_uInt16 nKnd, const OUString& rName ) :
- nKind( nKnd ),
- aName( rName )
- {}
-
- sal_Bool operator==( const SvI18NMapEntry_Impl& r ) const
- {
- return nKind == r.nKind &&
- aName == r.aName;
- }
-
- sal_Bool operator<( const SvI18NMapEntry_Impl& r ) const
- {
- return nKind < r.nKind ||
- ( nKind == r.nKind &&
- aName < r.aName);
- }
-};
-
-typedef SvI18NMapEntry_Impl *SvI18NMapEntry_ImplPtr;
-SV_DECL_PTRARR_SORT_DEL( SvI18NMap_Impl, SvI18NMapEntry_ImplPtr, 20 )
-SV_IMPL_OP_PTRARR_SORT( SvI18NMap_Impl, SvI18NMapEntry_ImplPtr )
-
-// ---------------------------------------------------------------------
-
-SvI18NMapEntry_Impl *SvI18NMap::_Find( sal_uInt16 nKind,
- const OUString& rName ) const
+bool SvI18NMap::Add( sal_uInt16 nKind, const rtl::OUString& rName,
+ const rtl::OUString& rNewName )
{
- SvI18NMapEntry_Impl *pRet = 0;
- SvI18NMapEntry_Impl aTst( nKind, rName );
-
- sal_uInt16 nPos;
- if( pImpl->Seek_Entry( &aTst, &nPos ) )
- {
- pRet = (*pImpl)[nPos];
- }
-
- return pRet;
-}
-
-SvI18NMap::SvI18NMap() :
- pImpl( 0 )
-{
- pImpl = new SvI18NMap_Impl;
+ SvI18NMapEntry_Key aKey(nKind, rName);
+ bool bIsNewInsertion = m_aMap.insert(SvI18NMap_Impl::value_type(aKey, rNewName)).second;
+ DBG_ASSERT( bIsNewInsertion, "SvI18NMap::Add: item registered already" );
+ return bIsNewInsertion;
}
-SvI18NMap::~SvI18NMap()
+const rtl::OUString& SvI18NMap::Get( sal_uInt16 nKind, const rtl::OUString& rName ) const
{
- delete pImpl;
+ SvI18NMapEntry_Key aKey(nKind, rName);
+ SvI18NMap_Impl::const_iterator aI = m_aMap.find(aKey);
+ if (aI != m_aMap.end())
+ return aI->second;
+ return rName;
}
-void SvI18NMap::Add( sal_uInt16 nKind, const OUString& rName,
- const OUString& rNewName )
-{
- SvI18NMapEntry_Impl *pEntry = _Find( nKind, rName );
- DBG_ASSERT( !pEntry, "SvI18NMap::Add: item registered already" );
- if( !pEntry )
- {
- pEntry = new SvI18NMapEntry_Impl( nKind, rName, rNewName );
- pImpl->Insert( pEntry );
- }
-}
-
-const OUString& SvI18NMap::Get( sal_uInt16 nKind, const OUString& rName ) const
-{
- SvI18NMapEntry_Impl *pEntry = _Find( nKind, rName );
- if( pEntry )
- return pEntry->GetNewName();
- else
- return rName;
-}
-
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */