/* * Copyright (c) 2001-2006 * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004-2006 * Progress Software Corporation. All rights reserved. * Copyright (c) 2004-2006 * Oracle. All rights reserved. * * See the file LICENSE for redistribution information. * * $Id: CollationImpl.hpp,v 1.9 2007/07/10 16:28:57 jpcs Exp $ */ #ifndef COLLATIONIMPL_HPP #define COLLATIONIMPL_HPP #include #include #include class Item; class XPath2MemoryManager; class DynamicContext; class XQILLA_API CollationHelper { public: virtual ~CollationHelper() {}; virtual const XMLCh* getCollationName() const = 0; virtual int compare(const XMLCh* string1, const XMLCh* string2) const = 0; }; class XQILLA_API CollationImpl : public Collation { public: CollationImpl(XPath2MemoryManager* memMgr, CollationHelper* helper); virtual const XMLCh* getCollationName() const; virtual Sequence sort(Sequence data, const DynamicContext* context) const; virtual int compare(const XMLCh* const string1, const XMLCh* const string2) const; protected: XPath2MemoryManager* _memMgr; CollationHelper* _helper; }; #endif