#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 #include /*static*/ const XMLCh NodeComparison::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; NodeComparison::NodeComparison(const VectorOfDataItems &args, XPath2MemoryManager* memMgr) : DataItemOperator(name, args, memMgr) { } Sequence NodeComparison::collapseTreeInternal(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); const Node* arg1 = getNodeParam(0,context); if(arg1 == 0) return Sequence(memMgr); const Node* arg2 = getNodeParam(1,context); if(arg2 == 0) return Sequence(memMgr); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *one = arg1->getDOMNode(); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *two = arg2->getDOMNode(); return Sequence(DatatypeFactory::POD2AT::createBoolean(memMgr, const_cast(one)->isSameNode(two), context), memMgr); }