20 #ifndef INCLUDED_COMPHELPER_ANYCOMPARE_HXX
21 #define INCLUDED_COMPHELPER_ANYCOMPARE_HXX
25 #include <com/sun/star/lang/IllegalArgumentException.hpp>
26 #include <com/sun/star/i18n/XCollator.hpp>
42 virtual bool isLess( css::uno::Any
const & _lhs, css::uno::Any
const & _rhs )
const = 0;
56 bool operator()( css::uno::Any
const & _lhs, css::uno::Any
const & _rhs )
const
68 template<
typename SCALAR >
72 virtual bool isLess( css::uno::Any
const & _lhs, css::uno::Any
const & _rhs )
const override
74 SCALAR lhs(0), rhs(0);
75 if ( !( _lhs >>= lhs )
78 throw css::lang::IllegalArgumentException();
89 virtual bool isLess( css::uno::Any
const & _lhs, css::uno::Any
const & _rhs )
const override
92 if ( !( _lhs >>= lhs )
95 throw css::lang::IllegalArgumentException();
111 virtual bool isLess( css::uno::Any
const & _lhs, css::uno::Any
const & _rhs )
const override
114 if ( !( _lhs >>= lhs )
117 throw css::lang::IllegalArgumentException();
118 return m_collator->compareString( lhs, rhs ) < 0;
122 css::uno::Reference< css::i18n::XCollator >
const m_collator;
131 virtual bool isLess( css::uno::Any
const & _lhs, css::uno::Any
const & _rhs )
const override
133 css::uno::Type lhs, rhs;
134 if ( !( _lhs >>= lhs )
137 throw css::lang::IllegalArgumentException();
138 return lhs.getTypeName() < rhs.getTypeName();
153 virtual bool isLess( css::uno::Any
const & _lhs, css::uno::Any
const & _rhs )
const override
155 sal_Int32 lhs(0), rhs(0);
161 throw css::lang::IllegalArgumentException();
175 virtual bool isLess( css::uno::Any
const & _lhs, css::uno::Any
const & _rhs )
const override
177 if ( ( _lhs.getValueTypeClass() != css::uno::TypeClass_INTERFACE )
178 || ( _rhs.getValueTypeClass() != css::uno::TypeClass_INTERFACE )
180 throw css::lang::IllegalArgumentException();
182 css::uno::Reference< css::uno::XInterface > lhs( _lhs, css::uno::UNO_QUERY );
183 css::uno::Reference< css::uno::XInterface > rhs( _rhs, css::uno::UNO_QUERY );
184 return lhs.get() < rhs.get();
204 css::uno::Type
const & i_type,
205 css::uno::Reference< css::i18n::XCollator >
const & i_collator
216 #endif // INCLUDED_COMPHELPER_ANYCOMPARE_HXX
bool operator()(css::uno::Any const &_lhs, css::uno::Any const &_rhs) const
IKeyPredicateLess const & m_predicate
virtual bool isLess(css::uno::Any const &_lhs, css::uno::Any const &_rhs) const override
virtual ~IKeyPredicateLess()
EnumPredicateLess(css::uno::Type const &_enumType)
css::uno::Reference< css::i18n::XCollator > const m_collator
bool anyLess(css::uno::Any const &lhs, css::uno::Any const &rhs)
Compare two Anys.
LessPredicateAdapter(const IKeyPredicateLess &_predicate)
StringCollationPredicateLess(css::uno::Reference< css::i18n::XCollator > const &i_collator)
bool enum2int(sal_Int32 &rnEnum, const css::uno::Any &rAny)
Sets int32 from enum or int in any.
virtual bool isLess(css::uno::Any const &_lhs, css::uno::Any const &_rhs) const override
virtual bool isLess(css::uno::Any const &_lhs, css::uno::Any const &_rhs) const override
virtual bool isLess(css::uno::Any const &_lhs, css::uno::Any const &_rhs) const override
virtual bool isLess(css::uno::Any const &_lhs, css::uno::Any const &_rhs) const override
css::uno::Type const m_enumType
std::unique_ptr< IKeyPredicateLess > getStandardLessPredicate(Type const &i_type, Reference< XCollator > const &i_collator)
virtual bool isLess(css::uno::Any const &_lhs, css::uno::Any const &_rhs) const override
#define COMPHELPER_DLLPUBLIC
virtual bool isLess(css::uno::Any const &_lhs, css::uno::Any const &_rhs) const =0