#include "../config/pathan_config.h" /* * Copyright (c) 2001, DecisionSoft Limited All rights reserved. * Please see LICENSE.TXT for more information. */ #include #include #include #include #include /*static*/ const XMLCh NotEquals::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; NotEquals::NotEquals(const VectorOfDataItems &args, XPath2MemoryManager* memMgr) : DataItemOperator(name, args, memMgr) { } /*static*/ bool NotEquals::not_equals(const Item* arg1, const Item* arg2, DynamicContext* context) { // define "ne" as "!eq" return !Equals::equals(arg1,arg2,context); } Sequence NotEquals::collapseTreeInternal(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Sequence newArgs = getComparisonOperatorArguments(context); if(newArgs.getLength() < 2) return Sequence(memMgr); bool result = not_equals(newArgs.first(), newArgs.second(), context); return Sequence(DatatypeFactory::POD2AT::createBoolean(memMgr, result, context), memMgr); }