18#if !defined(XPATH_HEADER_GUARD_1357924680)
19#define XPATH_HEADER_GUARD_1357924680
48namespace XERCES_CPP_NAMESPACE
63class XPathConstructionContext;
81 static const XalanDOMChar PSEUDONAME_ANY[];
82 static const XalanDOMChar PSEUDONAME_ROOT[];
83 static const XalanDOMChar PSEUDONAME_TEXT[];
84 static const XalanDOMChar PSEUDONAME_COMMENT[];
85 static const XalanDOMChar PSEUDONAME_PI[];
86 static const XalanDOMChar PSEUDONAME_OTHER[];
87 static const XalanDOMChar PSEUDONAME_NODE[];
106 m_priority(eMatchScoreNone),
112 const XalanDOMChar* theString,
116 m_priority(thePriority),
117 m_targetType(theTargetType)
141 const XalanDOMChar* m_string;
145 eTargetType m_targetType;
169 MemoryManager& theManager,
170 const Locator* theLocator = 0);
174 MemoryManager& theManager,
175 const Locator* theLocator = 0);
180 return m_expression.getMemoryManager();
191 m_expression.shrink();
236 double& result)
const;
271 MemberFunctionPtr function)
const;
320 return execute(context, prefixResolver, executionContext);
345 execute(context, prefixResolver, executionContext, result);
363 double& result)
const
370 execute(context, prefixResolver, executionContext, result);
396 execute(context, prefixResolver, executionContext, result);
416 MemberFunctionPtr function)
const
423 execute(context, prefixResolver, executionContext, formatterListener, function);
459 return execute(context, prefixResolver, executionContext, result);
479 getInitialOpCodePosition(),
502 getInitialOpCodePosition(),
519 double& result)
const
526 getInitialOpCodePosition(),
551 getInitialOpCodePosition(),
570 MemberFunctionPtr function)
const
577 getInitialOpCodePosition(),
613 getInitialOpCodePosition(),
642 getInitialOpCodePosition(),
671 getInitialOpCodePosition(),
690 double& result)
const
701 getInitialOpCodePosition(),
732 getInitialOpCodePosition(),
750 MemberFunctionPtr function)
const
761 getInitialOpCodePosition(),
803 getInitialOpCodePosition(),
835 case eMatchScoreNone:
836 return DoubleSupport::getNegativeInfinity();
839 case eMatchScoreNodeTest:
843 case eMatchScoreNSWild:
847 case eMatchScoreOther:
851 case eMatchScoreQName:
900 return executeMore(context, opPos + 2, executionContext);
922 s_functions.InstallFunction(funcName,
934 const XalanDOMChar* funcName,
937 s_functions.InstallFunction(funcName,
950 return s_functions.UninstallFunction(funcName);
962 return s_functions.UninstallFunction(funcName);
974 return s_functions.isInstalledFunction(theFunctionName);
995 template<
class OutputIteratorType>
999 s_functions.getInstalledFunctionNames(theIterator);
1005 s_functions.DestroyTable();
1011 return m_inStylesheet;
1017 m_inStylesheet = fValue;
1029 m_locator = theLocator;
1051 const Locator* theLocator = 0,
1066 return (this->*m_testFunction)(context, nodeType);
1072 return (this->*m_testFunction2)(context);
1078 m_executionContext = theRHS.m_executionContext;
1079 m_targetNamespace = theRHS.m_targetNamespace;
1080 m_targetLocalName = theRHS.m_targetLocalName;
1081 m_testFunction = theRHS.m_testFunction;
1082 m_testFunction2 = theRHS.m_testFunction2;
1094 const Locator* theLocator);
1139 testAttributeNCName(
1149 testAttributeNamespaceOnly(
1154 testAttributeTotallyWild(
1169 testElementNamespaceOnly(
1174 testElementTotallyWild(
1185 testElementNamespaceOnly2(
const XalanElement& context)
const;
1188 testElementTotallyWild2(
const XalanElement& context)
const;
1191 testNamespaceNCName(
1196 testNamespaceTotallyWild(
1209 matchLocalName(
const XalanNode& context)
const;
1212 matchNamespaceURI(
const XalanNode& context)
const;
1215 matchLocalNameAndNamespaceURI(
const XalanNode& context)
const;
1218 matchNamespace(
const XalanNode& context)
const;
1221 shouldStripSourceNode(
const XalanText& context)
const;
1230 TestFunctionPtr m_testFunction;
1232 TestFunctionPtr2 m_testFunction2;
1266 bool& theResult)
const;
1281 double& theResult)
const;
1313 MemberFunctionPtr function)
const;
1330 step(executionContext, context, opPos + 2, theResult);
1360 bool& theResult)
const;
1375 double& theResult)
const;
1408 MemberFunctionPtr function)
const;
1569 MemberFunctionPtr function)
const;
1598 MemberFunctionPtr function)
const;
1627 MemberFunctionPtr function)
const;
1656 MemberFunctionPtr function)
const;
1685 MemberFunctionPtr function)
const;
1714 MemberFunctionPtr function)
const;
1742 bool& result)
const;
1757 double& result)
const;
1789 MemberFunctionPtr function)
const;
1825 bool& theResult)
const;
1836 double& theResult)
const;
1860 MemberFunctionPtr function)
const;
1886 return executeMore(context, opPos + 2, executionContext);
1901 bool& theResult)
const
1903 executeMore(context, opPos + 2, executionContext, theResult);
1918 double& theResult)
const
1920 executeMore(context, opPos + 2, executionContext, theResult);
1937 executeMore(context, opPos + 2, executionContext, theResult);
1955 MemberFunctionPtr function)
const
1985 if (theValue.
null() ==
false)
2022 bool& theResult)
const;
2047 MemberFunctionPtr function)
const;
2115 return s_functions[funcID].execute(executionContext, context, argVec, m_locator);
2130 assert(context != 0);
2134 assert(
static_cast<double>(theResult) == theResult);
2136 return static_cast<double>(theResult);
2150 assert(
static_cast<double>(theResult) == theResult);
2152 return static_cast<double>(theResult);
2183 assert(context != 0);
2185 return !functionBoolean(context, opPos, executionContext);
2202 assert(context != 0);
2206 executeMore(context, opPos + 2, executionContext, result);
2220 assert(context != 0);
2222 return DOMServices::getNameOfNode(*context);
2274 assert(context != 0);
2276 return XObject::number(executionContext, *context);
2295 executeMore(context, opPos + 2, executionContext, result);
2314 return DoubleSupport::floor(functionNumber(context, opPos, executionContext));
2331 return DoubleSupport::ceiling(functionNumber(context, opPos, executionContext));
2348 return DoubleSupport::round(functionNumber(context, opPos, executionContext));
2410 operator=(
const XPath&);
2418 eDefaultTargetDataSize = 5
2421 OpCodeMapPositionType
2422 getInitialOpCodePosition()
const
2424#if defined(XALAN_XPATH_EXPRESSION_USE_ITERATORS)
2425 assert(m_expression.getOpCodeMapValue(0) == XPathExpression::eOP_XPATH);
2427 assert(m_expression.getOpCodeMapValue(
2428 m_expression.getInitialOpCodePosition()) == XPathExpression::eOP_XPATH);
2430 return m_expression.getInitialOpCodePosition() + 2;
2434 locationPathPattern(
2435 XPathExecutionContext& executionContext,
2437 OpCodeMapPositionType opPos)
const;
2654 const Locator* m_locator;
2661 bool m_inStylesheet;
#define XALAN_CPP_NAMESPACE
#define XALAN_XPATH_EXPORT
Local implementation of MutableNodeRefList.
void setDocumentOrder()
Set the known order of the nodes.
void addNodesInDocOrder(const XalanNodeList &nodelist, XPathExecutionContext &executionContext)
Copy NodeList members into this nodelist, adding in document order.
Local implementation of NodeRefList.
This class defines an interface for classes that resolve namespace prefixes to their URIs.
Class to hold XObjectPtr return types.
virtual const NodeRefListBase & nodeset() const
Cast result object to a nodelist.
NodeRefListBase::size_type size_type
virtual XalanNode * getCurrentNode() const =0
Retrieve the node currently being executed.
virtual size_type getContextNodeListPosition(const XalanNode &contextNode) const =0
virtual const XObjectPtr extFunction(const XalanDOMString &theNamespace, const XalanDOMString &functionName, XalanNode *context, const XObjectArgVectorType &argVec, const Locator *locator)=0
Handle an extension function.
virtual const PrefixResolver * getPrefixResolver() const =0
Retrieve the resolver for namespaces.
virtual size_type getContextNodeListLength() const =0
OpCodeMapType::value_type OpCodeMapValueType
OpCodeMapType::const_iterator OpCodeMapPositionType
TokenQueueSizeType TokenQueuePositionType
Class defines a table of functions that can be called in XPath expresions.
eMatchScore initialize(XPathConstructionContext &theConstructionContext, const XalanDOMString &theNameTest, const PrefixResolver &thePrefixResolver, const Locator *theLocator)
NodeTester(XPathConstructionContext &theContext, const XalanDOMString &theNameTest, const PrefixResolver &thePrefixResolver, const Locator *theLocator=0, eMatchScore *theMatchScore=0)
NodeTester(const NodeTester &theSource)
NodeTester(const XalanDOMString &theNamespaceURI, const XalanDOMString &theLocalName, eMatchScore *theMatchScore=0)
NodeTester & operator=(const NodeTester &theRHS)
NodeTester(const XPath &xpath, XPathExecutionContext &executionContext, OpCodeMapPositionType opPos, OpCodeMapValueType argLen, OpCodeMapValueType stepType)
eMatchScore initialize(const XalanDOMString &theNamespaceURI, const XalanDOMString &theLocalName)
eMatchScore operator()(const XalanNode &context, XalanNode::NodeType nodeType) const
eMatchScore operator()(const XalanElement &context) const
const XalanDOMChar * getString() const
eMatchScore getDefaultPriority() const
eTargetType getTargetType() const
TargetData(const XalanDOMChar *theString, eMatchScore thePriority, eTargetType theTargetType)
void neg(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, FormatterListener &formatterListener, MemberFunctionPtr function) const
Return the negation of a number.
static bool uninstallFunction(const XalanDOMChar *funcName)
Remove a named function from the function table.
const XObjectPtr locationPath(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Execute a location path.
void execute(const PrefixResolver &prefixResolver, XPathExecutionContext &executionContext, FormatterListener &formatterListener, MemberFunctionPtr function) const
Execute the XPath from the provided context.
XPathExecutionContext::PrefixResolverSetAndRestore PrefixResolverSetAndRestore
bool gt(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Tell if one argument is greater than the other argument.
void numberlit(OpCodeMapPositionType opPos, bool &theResult) const
Get a literal value as a boolean.
const XalanDOMString & functionName(XalanNode *context) const
Handle the built-in function "name".
void executeMore(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, double &theResult) const
Execute the XPath from the provided context.
double mod(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Return the remainder from a truncating division.
double functionCount(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Handle the built-in function "count".
void execute(XalanNode *context, const PrefixResolver &prefixResolver, XPathExecutionContext &executionContext, XalanDOMString &result) const
Execute the XPath from the provided context.
bool lte(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Tell if one argument is less than or equal to the other argument.
MemoryManager & getMemoryManager()
void group(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, MutableNodeRefList &theResult) const
Execute an expression as a group.
const XObjectPtr executeMore(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, MutableNodeRefList &theResult) const
Execute the XPath from the provided context.
bool And(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
OR two expressions and return the boolean result.
const XObjectPtr execute(XalanNode *context, const PrefixResolver &prefixResolver, const NodeRefListBase &contextNodeList, XPathExecutionContext &executionContext) const
Execute the XPath from the provided context.
void execute(XalanNode *context, const PrefixResolver &prefixResolver, const NodeRefListBase &contextNodeList, XPathExecutionContext &executionContext, bool &result) const
Execute the XPath from the provided context.
bool lt(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Tell if one argument is less than the other argument.
void numberlit(OpCodeMapPositionType opPos, FormatterListener &formatterListener, MemberFunctionPtr function) const
Get a literal value.
double minus(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Give the difference of two arguments.
double functionFloor(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Handle the built-in function "floor".
static void installFunction(const XalanDOMChar *funcName, const Function &func)
Install a built-in function.
const XObjectPtr execute(XalanNode *context, const PrefixResolver &prefixResolver, XPathExecutionContext &executionContext) const
Execute the XPath from the provided context.
OpCodeMapPositionType findSelf(XPathExecutionContext &executionContext, XalanNode *context, OpCodeMapPositionType opPos, OpCodeMapValueType stepType, MutableNodeRefList &subQueryResults) const
static double getMatchScoreValue(eMatchScore score)
static XPath * create(MemoryManager &theManager, const Locator *theLocator=0)
void executeMore(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, XalanDOMString &theResult) const
Execute the XPath from the provided context.
void execute(XalanNode *context, const PrefixResolver &prefixResolver, XPathExecutionContext &executionContext, double &result) const
Execute the XPath from the provided context.
double functionStringLength(XalanNode *context, XPathExecutionContext &executionContext) const
Handle the built-in function "string-length".
static void destroyTable()
OpCodeMapPositionType findNamespace(XPathExecutionContext &executionContext, XalanNode *context, OpCodeMapPositionType opPos, OpCodeMapValueType stepType, MutableNodeRefList &subQueryResults) const
static void installFunction(const XalanDOMString &funcName, const Function &func)
Install a built-in function.
void execute(XPathExecutionContext &executionContext, XalanDOMString &result) const
Execute the XPath from the provided context.
void locationPath(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, XalanDOMString &theResult) const
Execute a location path.
double mult(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Multiply two arguments.
eMatchScore handleFoundIndex(XPathExecutionContext &executionContext, XalanNode *localContext, OpCodeMapPositionType startOpPos) const
const XObjectPtr execute(XPathExecutionContext &executionContext, MutableNodeRefList &result) const
Execute the XPath from the provided context.
double div(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Divide a number.
bool gte(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Tell if one argument is greater than or equal to the other argument.
void Union(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, FormatterListener &formatterListener, MemberFunctionPtr function) const
Computes the union of its operands which must be node-sets.
void execute(XPathExecutionContext &executionContext, FormatterListener &formatterListener, MemberFunctionPtr function) const
Execute the XPath from the provided context.
void literal(OpCodeMapPositionType opPos, FormatterListener &formatterListener, MemberFunctionPtr function) const
Get a literal value.
XalanNode * stepPattern(XPathExecutionContext &executionContext, XalanNode *context, OpCodeMapPositionType opPos, eMatchScore &scoreHolder) const
Execute a step in a match pattern's location path.
void mod(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, FormatterListener &formatterListener, MemberFunctionPtr function) const
Return the remainder from a truncating division.
OpCodeMapPositionType findChildren(XPathExecutionContext &executionContext, XalanNode *context, OpCodeMapPositionType opPos, OpCodeMapValueType stepType, MutableNodeRefList &subQueryResults) const
void step(XPathExecutionContext &executionContext, XalanNode *context, OpCodeMapPositionType opPos, MutableNodeRefList &queryResults) const
Execute a step in a location path.
void div(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, FormatterListener &formatterListener, MemberFunctionPtr function) const
Divide a number.
OpCodeMapPositionType findFollowing(XPathExecutionContext &executionContext, XalanNode *context, OpCodeMapPositionType opPos, OpCodeMapValueType stepType, MutableNodeRefList &subQueryResults) const
double numberlit(OpCodeMapPositionType opPos) const
Get a literal value.
XalanVector< TargetData > TargetDataVectorType
void Union(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, double &result) const
Computes the union of its operands which must be node-sets.
double functionLast(XPathExecutionContext &executionContext) const
Handle the built-in function "last".
bool Or(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
OR two expressions and return the boolean result.
bool getInStylesheet() const
eMatchScore getMatchScore(XalanNode *node, const PrefixResolver &resolver, XPathExecutionContext &executionContext) const
Get the match score for the specified node.
void getTargetData(TargetDataVectorType &targetData) const
Add the data for the target of match pattern to a vector.
bool functionBoolean(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Handle the built-in function "boolean".
double functionNumber(XalanNode *context, XPathExecutionContext &executionContext) const
Handle the built-in function "number".
XPathExpression & getExpression()
Retrieve a reference to the current expression.
OpCodeMapPositionType findDescendants(XPathExecutionContext &executionContext, XalanNode *context, OpCodeMapPositionType opPos, OpCodeMapValueType stepType, MutableNodeRefList &subQueryResults) const
void execute(const PrefixResolver &prefixResolver, XPathExecutionContext &executionContext, XalanDOMString &result) const
Execute the XPath from the provided context.
const XObjectPtr execute(const PrefixResolver &prefixResolver, XPathExecutionContext &executionContext) const
Execute the XPath from the provided context.
double functionNumber(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Handle the built-in function "number".
OpCodeMapPositionType findRoot(XPathExecutionContext &executionContext, XalanNode *context, OpCodeMapPositionType opPos, OpCodeMapValueType stepType, MutableNodeRefList &subQueryResults) const
void shrink()
Shrink internal tables.
static void terminate()
Perform static shut down.
void execute(const PrefixResolver &prefixResolver, XPathExecutionContext &executionContext, bool &result) const
Execute the XPath from the provided context.
bool equals(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Tell if two expressions are functionally equal.
const XalanDOMString & functionName(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Handle the built-in function "name".
void executeMore(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, FormatterListener &formatterListener, MemberFunctionPtr function) const
Execute the XPath from the provided context.
double functionStringLength(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Handle the built-in function "string-length".
void execute(XalanNode *context, const PrefixResolver &prefixResolver, XPathExecutionContext &executionContext, FormatterListener &formatterListener, MemberFunctionPtr function) const
Execute the XPath from the provided context.
const XObjectPtr execute(XPathExecutionContext &executionContext) const
Execute the XPath from the provided context.
static bool isInstalledFunction(const XalanDOMString &theFunctionName)
Whether the named function is installed in the function table.
void execute(XPathExecutionContext &executionContext, double &result) const
Execute the XPath from the provided context.
const XObjectPtr execute(XalanNode *context, const PrefixResolver &prefixResolver, XPathExecutionContext &executionContext, MutableNodeRefList &result) const
Execute the XPath from the provided context.
XPathExpression::OpCodeMapPositionType OpCodeMapPositionType
OpCodeMapPositionType findPreceedingSiblings(XPathExecutionContext &executionContext, XalanNode *context, OpCodeMapPositionType opPos, OpCodeMapValueType stepType, MutableNodeRefList &subQueryResults) const
void execute(XalanNode *context, const PrefixResolver &prefixResolver, const NodeRefListBase &contextNodeList, XPathExecutionContext &executionContext, double &result) const
Execute the XPath from the provided context.
eMatchScore getMatchScore(XalanNode *node, XPathExecutionContext &executionContext) const
Get the match score for the specified node.
eMatchScore doStepPredicate(XPathExecutionContext &executionContext, XalanNode *context, OpCodeMapPositionType opPos, OpCodeMapPositionType startOpPos, eMatchScore score) const
Potentially evaluate a predicate in a match pattern step.
XPathExpression::TokenQueuePositionType TokenQueuePositionType
const XObjectPtr predicate(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Evaluate a predicate.
void execute(const PrefixResolver &prefixResolver, XPathExecutionContext &executionContext, double &result) const
Execute the XPath from the provided context.
double plus(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Give the sum of two arguments.
static bool uninstallFunction(const XalanDOMString &funcName)
Remove a named function from the function table.
const XObjectPtr Union(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Computes the union of its operands which must be node-sets.
void execute(XalanNode *context, const PrefixResolver &prefixResolver, const NodeRefListBase &contextNodeList, XPathExecutionContext &executionContext, FormatterListener &formatterListener, MemberFunctionPtr function) const
Execute the XPath from the provided context.
OpCodeMapPositionType findNodeSet(XPathExecutionContext &executionContext, XalanNode *context, OpCodeMapPositionType opPos, OpCodeMapValueType stepType, MutableNodeRefList &subQueryResults) const
const XObjectPtr extfunction(XalanNode *context, OpCodeMapPositionType, const XalanDOMString &theNamespace, const XalanDOMString &functionName, const Function::XObjectArgVectorType &argVec, XPathExecutionContext &executionContext) const
Handle an extension function.
OpCodeMapPositionType findPreceeding(XPathExecutionContext &executionContext, XalanNode *context, OpCodeMapPositionType opPos, OpCodeMapValueType stepType, MutableNodeRefList &subQueryResults) const
const XObjectPtr literal(OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Get a literal value.
void locationPath(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, FormatterListener &formatterListener, MemberFunctionPtr function) const
Execute a location path.
XPathExpression::OpCodeMapValueType OpCodeMapValueType
XPathExecutionContext::CurrentNodePushAndPop CurrentNodePushAndPop
void Union(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, MutableNodeRefList &result) const
Computes the union of its operands which must be node-sets.
void literal(OpCodeMapPositionType opPos, bool &theResult) const
Get a literal value as a boolean.
XObjectPtr execute(const PrefixResolver &prefixResolver, XPathExecutionContext &executionContext, MutableNodeRefList &result) const
Execute the XPath from the provided context.
const Locator * getLocator() const
static void getInstalledFunctionNames(OutputIteratorType theIterator)
Add the names for the installed functions to a vector strings.
double getNumericOperand(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Get a numeric operand for an expression.
void mult(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, FormatterListener &formatterListener, MemberFunctionPtr function) const
Multiply two arguments.
void Union(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, bool &result) const
Computes the union of its operands which must be node-sets.
void group(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, XalanDOMString &theResult) const
Execute an expression as a group.
void locationPath(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, double &theResult) const
Execute a location path.
const XObjectPtr numberlit(OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Get a literal value.
void numberlit(OpCodeMapPositionType opPos, XalanDOMString &theResult) const
Get a literal value.
OpCodeMapPositionType findParent(XPathExecutionContext &executionContext, XalanNode *context, OpCodeMapPositionType opPos, OpCodeMapValueType stepType, MutableNodeRefList &subQueryResults) const
double functionPosition(XalanNode *context, XPathExecutionContext &executionContext) const
Handle the built-in function "position".
void executeMore(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, bool &theResult) const
Execute the XPath from the provided context.
void Union(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, XalanDOMString &result) const
Computes the union of its operands which must be node-sets.
const XalanDOMString & functionLocalName(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Handle the built-in function "local-name".
OpCodeMapPositionType findFollowingSiblings(XPathExecutionContext &executionContext, XalanNode *context, OpCodeMapPositionType opPos, OpCodeMapValueType stepType, MutableNodeRefList &subQueryResults) const
const XPathExpression & getExpression() const
Retrieve a reference to the current expression.
void setInStylesheet(bool fValue)
bool functionNot(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Handle the built-in function "not".
void locationPath(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, bool &theResult) const
Execute a location path.
OpCodeMapPositionType findNodesOnUnknownAxis(XPathExecutionContext &executionContext, XalanNode *context, OpCodeMapPositionType opPos, OpCodeMapValueType stepType, MutableNodeRefList &subQueryResults) const
xercesc::Locator LocatorType
void minus(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, FormatterListener &formatterListener, MemberFunctionPtr function) const
Give the difference of two arguments.
void literal(OpCodeMapPositionType opPos, double &theResult) const
Get a literal value as a number.
bool notequals(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Tell if two expressions are functionally not equal.
void execute(XPathExecutionContext &executionContext, bool &result) const
Execute the XPath from the provided context.
OpCodeMapPositionType findAttributes(XPathExecutionContext &executionContext, XalanNode *context, OpCodeMapPositionType opPos, OpCodeMapValueType stepType, MutableNodeRefList &subQueryResults) const
double functionRound(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Handle the built-in function "round".
const XObjectPtr execute(XalanNode *context, const PrefixResolver &prefixResolver, const NodeRefListBase &contextNodeList, XPathExecutionContext &executionContext, MutableNodeRefList &result) const
Execute the XPath from the provided context.
void plus(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, FormatterListener &formatterListener, MemberFunctionPtr function) const
Give the sum of two arguments.
double neg(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Return the negation of a number.
static const FunctionTableType & getFunctionTable()
Retrieve the table of installed functions.
XPathFunctionTable FunctionTableType
void setLocator(const Locator *theLocator)
void doGetMatchScore(XalanNode *context, XPathExecutionContext &executionContext, eMatchScore &score) const
Helper function to get match score.
void locationPath(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, MutableNodeRefList &theResult) const
Execute a location path.
const XObjectPtr function(XalanNode *context, OpCodeMapValueType funcID, const Function::XObjectArgVectorType &argVec, XPathExecutionContext &executionContext) const
Handle a built-in function.
void group(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, FormatterListener &formatterListener, MemberFunctionPtr function) const
Execute an expression as a group.
OpCodeMapPositionType findAncestorsOrSelf(XPathExecutionContext &executionContext, XalanNode *context, OpCodeMapPositionType opPos, OpCodeMapValueType stepType, MutableNodeRefList &subQueryResults) const
double functionSum(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Handle the built-in function "sum".
const XObjectPtr executeMore(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Execute the XPath from the provided context.
static void initialize(MemoryManager &theManager)
Perform static initialization.
eMatchScore handleFoundIndexPositional(XPathExecutionContext &executionContext, XalanNode *localContext, OpCodeMapPositionType startOpPos) const
const XObjectPtr variable(OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Get the value of a variable.
const XObjectPtr runExtFunction(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Setup for and run an extension function.
XPath(MemoryManager &theManager, const Locator *theLocator=0)
Construct an XPath.
XPathExecutionContext::GetCachedString GetCachedString
void group(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, double &theResult) const
Execute an expression as a group.
double functionCeiling(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Handle the built-in function "ceiling".
void execute(XalanNode *context, const PrefixResolver &prefixResolver, XPathExecutionContext &executionContext, bool &result) const
Execute the XPath from the provided context.
const XObjectPtr runFunction(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Setup for and run a function.
void literal(OpCodeMapPositionType opPos, XalanDOMString &theResult) const
Get a literal value.
const XObjectPtr group(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext) const
Execute an expression as a group.
void execute(XalanNode *context, const PrefixResolver &prefixResolver, const NodeRefListBase &contextNodeList, XPathExecutionContext &executionContext, XalanDOMString &result) const
Execute the XPath from the provided context.
const XalanDOMString & functionLocalName(XalanNode *context) const
Handle the built-in function "local-name".
OpCodeMapPositionType predicates(XPathExecutionContext &executionContext, OpCodeMapPositionType opPos, MutableNodeRefList &subQueryResults) const
OpCodeMapPositionType findAncestors(XPathExecutionContext &executionContext, XalanNode *context, OpCodeMapPositionType opPos, OpCodeMapValueType stepType, MutableNodeRefList &subQueryResults) const
void group(XalanNode *context, OpCodeMapPositionType opPos, XPathExecutionContext &executionContext, bool &theResult) const
Execute an expression as a group.
virtual NodeType getNodeType() const =0
An enum value representing the type of the underlying object.
bool operator==(const XalanVector< Type > &theLHS, const XalanVector< Type > &theRHS)