/* * Copyright (c) 2001-2008 * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004-2008 * Oracle. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * $Id: GeneralComp.hpp 659 2008-10-06 00:11:22Z jpcs $ */ /* General Comparison operator function */ #ifndef _GENERALCOMP_HPP #define _GENERALCOMP_HPP #include #include #include /** GeneralComp operator function*/ class XQILLA_API GeneralComp : public XQOperator { public: typedef enum { EQUAL, NOT_EQUAL, LESS_THAN, LESS_THAN_EQUAL, GREATER_THAN, GREATER_THAN_EQUAL } ComparisonOperation; static const XMLCh name[]; GeneralComp(ComparisonOperation operation, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); GeneralComp(ComparisonOperation operation, const VectorOfASTNodes &args, Collation *collation, bool xpath1Compat, XPath2MemoryManager* memMgr); ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); Result createResult(DynamicContext* context, int flags=0) const; ComparisonOperation getOperation() const { return operation_; } Collation *getCollation() const { return collation_; } bool getXPath1CompatibilityMode() const { return xpath1compat_; } static bool compare(GeneralComp::ComparisonOperation operation, AnyAtomicType::Ptr first, AnyAtomicType::Ptr second, Collation* collation, DynamicContext *context, bool xpath1compat, const LocationInfo *info); protected: ComparisonOperation operation_; Collation* collation_; bool xpath1compat_; }; #endif