diff options
author | Jan Holesovsky <kendy@suse.cz> | 2011-03-18 15:55:08 +0100 |
---|---|---|
committer | Jan Holesovsky <kendy@suse.cz> | 2011-03-18 15:55:08 +0100 |
commit | 4fdd55226d2972e3a256426db3122ac23b0615c6 (patch) | |
tree | 23f5b3a68382d6d3b8db0cb5e2537ed74a228d7c /comphelper/source/container | |
parent | Resolves: rhbz#680460 honour lcdfilter, subpixeling etc. (diff) | |
parent | remove unused variable warning (diff) | |
download | core-4fdd55226d2972e3a256426db3122ac23b0615c6.tar.gz core-4fdd55226d2972e3a256426db3122ac23b0615c6.zip |
Merge remote-tracking branch 'origin/integration/dev300_m101'
Conflicts:
comphelper/source/misc/servicedecl.cxx
i18npool/source/breakiterator/breakiteratorImpl.cxx
l10ntools/scripts/localize.pl
svl/source/items/itemset.cxx
svl/source/memtools/svarray.cxx
svl/source/numbers/zformat.cxx
svtools/source/brwbox/brwbox1.cxx
tools/source/stream/strmwnt.cxx
vcl/inc/vcl/graphite_adaptors.hxx
vcl/inc/vcl/graphite_layout.hxx
vcl/inc/vcl/graphite_serverfont.hxx
vcl/source/control/imgctrl.cxx
vcl/source/gdi/outdev.cxx
vcl/source/gdi/outdev3.cxx
vcl/source/glyphs/gcach_ftyp.cxx
vcl/source/glyphs/graphite_adaptors.cxx
vcl/source/glyphs/graphite_layout.cxx
vcl/source/window/winproc.cxx
vcl/unx/source/fontmanager/fontconfig.cxx
Diffstat (limited to 'comphelper/source/container')
-rw-r--r-- | comphelper/source/container/enumerablemap.cxx | 205 | ||||
-rw-r--r-- | comphelper/source/container/makefile.mk | 55 |
2 files changed, 6 insertions, 254 deletions
diff --git a/comphelper/source/container/enumerablemap.cxx b/comphelper/source/container/enumerablemap.cxx index ab0af3e53e8f..10727897b5a3 100644 --- a/comphelper/source/container/enumerablemap.cxx +++ b/comphelper/source/container/enumerablemap.cxx @@ -25,11 +25,11 @@ * ************************************************************************/ -// MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_comphelper.hxx" #include "comphelper_module.hxx" #include "comphelper/anytostring.hxx" +#include "comphelper/anycompare.hxx" #include "comphelper/componentbase.hxx" #include "comphelper/componentcontext.hxx" #include "comphelper/extract.hxx" @@ -48,9 +48,7 @@ #include <rtl/ustrbuf.hxx> #include <typelib/typedescription.hxx> -#include <functional> #include <map> -#include <memory> #include <boost/shared_ptr.hpp> //........................................................................ @@ -80,26 +78,14 @@ namespace comphelper using ::com::sun::star::beans::Pair; using ::com::sun::star::uno::TypeClass; using ::com::sun::star::uno::TypeClass_VOID; - using ::com::sun::star::uno::TypeClass_CHAR; - using ::com::sun::star::uno::TypeClass_BOOLEAN; - using ::com::sun::star::uno::TypeClass_BYTE; - using ::com::sun::star::uno::TypeClass_SHORT; - using ::com::sun::star::uno::TypeClass_UNSIGNED_SHORT; - using ::com::sun::star::uno::TypeClass_LONG; - using ::com::sun::star::uno::TypeClass_UNSIGNED_LONG; - using ::com::sun::star::uno::TypeClass_HYPER; - using ::com::sun::star::uno::TypeClass_UNSIGNED_HYPER; - using ::com::sun::star::uno::TypeClass_FLOAT; - using ::com::sun::star::uno::TypeClass_DOUBLE; - using ::com::sun::star::uno::TypeClass_STRING; - using ::com::sun::star::uno::TypeClass_TYPE; - using ::com::sun::star::uno::TypeClass_ENUM; - using ::com::sun::star::uno::TypeClass_INTERFACE; using ::com::sun::star::uno::TypeClass_UNKNOWN; using ::com::sun::star::uno::TypeClass_ANY; using ::com::sun::star::uno::TypeClass_EXCEPTION; using ::com::sun::star::uno::TypeClass_STRUCT; using ::com::sun::star::uno::TypeClass_UNION; + using ::com::sun::star::uno::TypeClass_FLOAT; + using ::com::sun::star::uno::TypeClass_DOUBLE; + using ::com::sun::star::uno::TypeClass_INTERFACE; using ::com::sun::star::lang::XServiceInfo; using ::com::sun::star::uno::XComponentContext; using ::com::sun::star::container::XEnumeration; @@ -109,136 +95,6 @@ namespace comphelper /** === end UNO using === **/ //==================================================================== - //= IKeyPredicateLess - //==================================================================== - class SAL_NO_VTABLE IKeyPredicateLess - { - public: - virtual bool isLess( const Any& _lhs, const Any& _rhs ) const = 0; - virtual ~IKeyPredicateLess() {} - }; - - //==================================================================== - //= LessPredicateAdapter - //==================================================================== - struct LessPredicateAdapter : public ::std::binary_function< Any, Any, bool > - { - LessPredicateAdapter( const IKeyPredicateLess& _predicate ) - :m_predicate( _predicate ) - { - } - - bool operator()( const Any& _lhs, const Any& _rhs ) const - { - return m_predicate.isLess( _lhs, _rhs ); - } - - private: - const IKeyPredicateLess& m_predicate; - - private: - LessPredicateAdapter(); // never implemented - }; - - //==================================================================== - //= ScalarPredicateLess - //==================================================================== - template< typename SCALAR > - class ScalarPredicateLess : public IKeyPredicateLess - { - public: - virtual bool isLess( const Any& _lhs, const Any& _rhs ) const - { - SCALAR lhs(0), rhs(0); - if ( !( _lhs >>= lhs ) - || !( _rhs >>= rhs ) - ) - throw IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Unsupported key type." ) ), NULL, 1 ); - return lhs < rhs; - } - }; - - //==================================================================== - //= StringPredicateLess - //==================================================================== - class StringPredicateLess : public IKeyPredicateLess - { - public: - virtual bool isLess( const Any& _lhs, const Any& _rhs ) const - { - ::rtl::OUString lhs, rhs; - if ( !( _lhs >>= lhs ) - || !( _rhs >>= rhs ) - ) - throw IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Unsupported key type." ) ), NULL, 1 ); - return lhs < rhs; - } - }; - - //==================================================================== - //= TypePredicateLess - //==================================================================== - class TypePredicateLess : public IKeyPredicateLess - { - public: - virtual bool isLess( const Any& _lhs, const Any& _rhs ) const - { - Type lhs, rhs; - if ( !( _lhs >>= lhs ) - || !( _rhs >>= rhs ) - ) - throw IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Unsupported key type." ) ), NULL, 1 ); - return lhs.getTypeName() < rhs.getTypeName(); - } - }; - - //==================================================================== - //= EnumPredicateLess - //==================================================================== - class EnumPredicateLess : public IKeyPredicateLess - { - public: - EnumPredicateLess( const Type& _enumType ) - :m_enumType( _enumType ) - { - } - - virtual bool isLess( const Any& _lhs, const Any& _rhs ) const - { - sal_Int32 lhs(0), rhs(0); - if ( !::cppu::enum2int( lhs, _lhs ) - || !::cppu::enum2int( rhs, _rhs ) - || !_lhs.getValueType().equals( m_enumType ) - || !_rhs.getValueType().equals( m_enumType ) - ) - throw IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Unsupported key type." ) ), NULL, 1 ); - return lhs < rhs; - } - - private: - const Type m_enumType; - }; - - //==================================================================== - //= InterfacePredicateLess - //==================================================================== - class InterfacePredicateLess : public IKeyPredicateLess - { - public: - virtual bool isLess( const Any& _lhs, const Any& _rhs ) const - { - if ( ( _lhs.getValueTypeClass() != TypeClass_INTERFACE ) - || ( _rhs.getValueTypeClass() != TypeClass_INTERFACE ) - ) - throw IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Unsupported key type." ) ), NULL, 1 ); - - Reference< XInterface > lhs( _lhs, UNO_QUERY ); - Reference< XInterface > rhs( _rhs, UNO_QUERY ); - return lhs.get() < rhs.get(); - } - }; - - //==================================================================== //= MapData //==================================================================== class IMapModificationListener; @@ -550,58 +406,9 @@ namespace comphelper throw IllegalTypeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Unsupported value type." ) ), *this ); // create the comparator for the KeyType, and throw if the type is not supported - TypeClass eKeyTypeClass = aKeyType.getTypeClass(); - ::std::auto_ptr< IKeyPredicateLess > pComparator; - switch ( eKeyTypeClass ) - { - case TypeClass_CHAR: - pComparator.reset( new ScalarPredicateLess< sal_Unicode >() ); - break; - case TypeClass_BOOLEAN: - pComparator.reset( new ScalarPredicateLess< sal_Bool >() ); - break; - case TypeClass_BYTE: - pComparator.reset( new ScalarPredicateLess< sal_Int8 >() ); - break; - case TypeClass_SHORT: - pComparator.reset( new ScalarPredicateLess< sal_Int16 >() ); - break; - case TypeClass_UNSIGNED_SHORT: - pComparator.reset( new ScalarPredicateLess< sal_uInt16 >() ); - break; - case TypeClass_LONG: - pComparator.reset( new ScalarPredicateLess< sal_Int32 >() ); - break; - case TypeClass_UNSIGNED_LONG: - pComparator.reset( new ScalarPredicateLess< sal_uInt32 >() ); - break; - case TypeClass_HYPER: - pComparator.reset( new ScalarPredicateLess< sal_Int64 >() ); - break; - case TypeClass_UNSIGNED_HYPER: - pComparator.reset( new ScalarPredicateLess< sal_uInt64 >() ); - break; - case TypeClass_FLOAT: - pComparator.reset( new ScalarPredicateLess< float >() ); - break; - case TypeClass_DOUBLE: - pComparator.reset( new ScalarPredicateLess< double >() ); - break; - case TypeClass_STRING: - pComparator.reset( new StringPredicateLess() ); - break; - case TypeClass_TYPE: - pComparator.reset( new TypePredicateLess() ); - break; - case TypeClass_ENUM: - pComparator.reset( new EnumPredicateLess( aKeyType ) ); - break; - case TypeClass_INTERFACE: - pComparator.reset( new InterfacePredicateLess() ); - break; - default: + ::std::auto_ptr< IKeyPredicateLess > pComparator( getStandardLessPredicate( aKeyType, NULL ) ); + if ( !pComparator.get() ) throw IllegalTypeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Unsupported key type." ) ), *this ); - } // init members m_aData.m_aKeyType = aKeyType; diff --git a/comphelper/source/container/makefile.mk b/comphelper/source/container/makefile.mk deleted file mode 100644 index 97a066f9802a..000000000000 --- a/comphelper/source/container/makefile.mk +++ /dev/null @@ -1,55 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org 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 version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ=..$/.. -PRJINC=..$/..$/inc -PRJNAME=comphelper -TARGET=container - -ENABLE_EXCEPTIONS=TRUE - -# --- Settings ---------------------------------- - -.INCLUDE : settings.mk -.INCLUDE : $(PRJ)$/util$/makefile.pmk - -# --- Files ------------------------------------- - -SLOFILES=\ - $(SLO)$/namecontainer.obj \ - $(SLO)$/enumhelper.obj \ - $(SLO)$/container.obj \ - $(SLO)$/containermultiplexer.obj \ - $(SLO)$/IndexedPropertyValuesContainer.obj \ - $(SLO)$/embeddedobjectcontainer.obj \ - $(SLO)$/NamedPropertyValuesContainer.obj \ - $(SLO)$/enumerablemap.obj - -# --- Targets ---------------------------------- - -.INCLUDE : target.mk - |