<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Xalan-C++ API : Main Page</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<!-- The head section is copied from Doxygen 1.7.1 generated default output -->
<body>
<h2 align="center">Xalan-C++ API Documentation</h2>
<h3 align="center"><a href="../index.html">The Xalan C++ XSLT Processor Version 1.11</a></h3>
<hr/>
<!-- Generated by Doxygen 1.7.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
    </ul>
  </div>
<div class="header">
  <div class="headertitle">
<h1>XPathExecutionContext.hpp</h1>  </div>
</div>
<div class="contents">
<a href="XPathExecutionContext_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span>
<a name="l00003"></a>00003 <span class="comment"> * or more contributor license agreements. See the NOTICE file</span>
<a name="l00004"></a>00004 <span class="comment"> * distributed with this work for additional information</span>
<a name="l00005"></a>00005 <span class="comment"> * regarding copyright ownership. The ASF licenses this file</span>
<a name="l00006"></a>00006 <span class="comment"> * to you under the Apache License, Version 2.0 (the  &quot;License&quot;);</span>
<a name="l00007"></a>00007 <span class="comment"> * you may not use this file except in compliance with the License.</span>
<a name="l00008"></a>00008 <span class="comment"> * You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *     http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 <span class="preprocessor">#if !defined(XPATHEXECUTIONCONTEXT_HEADER_GUARD_1357924680)</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define XPATHEXECUTIONCONTEXT_HEADER_GUARD_1357924680</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span>
<a name="l00021"></a>00021 
<a name="l00022"></a>00022 
<a name="l00023"></a>00023 <span class="comment">// Base include file.  Must be first.</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;<a class="code" href="XPathDefinitions_8hpp.html">xalanc/XPath/XPathDefinitions.hpp</a>&gt;</span>
<a name="l00025"></a>00025 
<a name="l00026"></a>00026 
<a name="l00027"></a>00027 
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;cassert&gt;</span>
<a name="l00029"></a>00029 
<a name="l00030"></a>00030 
<a name="l00031"></a>00031 
<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;<a class="code" href="XalanVector_8hpp.html">xalanc/Include/XalanVector.hpp</a>&gt;</span>
<a name="l00033"></a>00033 
<a name="l00034"></a>00034 
<a name="l00035"></a>00035 
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;<a class="code" href="XalanDOMString_8hpp.html">xalanc/XalanDOM/XalanDOMString.hpp</a>&gt;</span>
<a name="l00037"></a>00037 
<a name="l00038"></a>00038 
<a name="l00039"></a>00039 
<a name="l00040"></a>00040 <span class="comment">// Base class header file...</span>
<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;<a class="code" href="ExecutionContext_8hpp.html">xalanc/PlatformSupport/ExecutionContext.hpp</a>&gt;</span>
<a name="l00042"></a>00042 
<a name="l00043"></a>00043 
<a name="l00044"></a>00044 
<a name="l00045"></a>00045 <span class="preprocessor">#include &lt;<a class="code" href="MutableNodeRefList_8hpp.html">xalanc/XPath/MutableNodeRefList.hpp</a>&gt;</span>
<a name="l00046"></a>00046 
<a name="l00047"></a>00047 
<a name="l00048"></a>00048 
<a name="l00049"></a>00049 XALAN_DECLARE_XERCES_CLASS(ErrorHandler)
<a name="l00050"></a>00050 
<a name="l00051"></a>00051 
<a name="l00052"></a>00052 
<a name="l00053"></a>00053 XALAN_CPP_NAMESPACE_BEGIN
<a name="l00054"></a>00054 
<a name="l00055"></a>00055 
<a name="l00056"></a>00056 
<a name="l00057"></a>00057 class <a class="code" href="classXalanDecimalFormatSymbols.html">XalanDecimalFormatSymbols</a>;
<a name="l00058"></a>00058 class <a class="code" href="classPrefixResolver.html" title="This class defines an interface for classes that resolve namespace prefixes to their URIs...">PrefixResolver</a>;
<a name="l00059"></a>00059 class <a class="code" href="classXalanQName.html" title="Class to represent a qualified name.">XalanQName</a>;
<a name="l00060"></a>00060 class <a class="code" href="classXObject.html" title="Class to hold XPath return types.">XObject</a>;
<a name="l00061"></a>00061 class <a class="code" href="classXObjectPtr.html" title="Class to hold XObjectPtr return types.">XObjectPtr</a>;
<a name="l00062"></a>00062 class <a class="code" href="classXObjectFactory.html" title="This class handles the creation of XObjects and manages their lifetime.">XObjectFactory</a>;
<a name="l00063"></a>00063 class <a class="code" href="classXalanDocument.html">XalanDocument</a>;
<a name="l00064"></a>00064 class <a class="code" href="classXalanElement.html">XalanElement</a>;
<a name="l00065"></a>00065 class <a class="code" href="classXalanNode.html">XalanNode</a>;
<a name="l00066"></a>00066 class <a class="code" href="classXalanText.html">XalanText</a>;
<a name="l00067"></a>00067 
<a name="l00068"></a>00068 
<a name="l00069"></a>00069 
<a name="l00070"></a>00070 <a class="code" href="XSLTProcessor_8hpp.html#a24af2755e58bade5ff0d5965b855e56a">XALAN_USING_XERCES</a>(ErrorHandler)
<a name="l00071"></a>00071 
<a name="l00072"></a>00072 
<a name="l00073"></a>00073 
<a name="l00074"></a>00074 <span class="comment">//</span>
<a name="l00075"></a>00075 <span class="comment">// An abstract class which provides support for executing XPath functions</span>
<a name="l00076"></a>00076 <span class="comment">// and extension functions.</span>
<a name="l00077"></a>00077 <span class="comment">//</span>
<a name="l00078"></a>00078 
<a name="l00079"></a><a class="code" href="classXPathExecutionContext.html">00079</a> class <a class="code" href="XPathDefinitions_8hpp.html#aa9c15f77ef5ab2dc518733b0fd07c141">XALAN_XPATH_EXPORT</a> <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a> : public <a class="code" href="classExecutionContext.html">ExecutionContext</a>
<a name="l00080"></a>00080 {
<a name="l00081"></a>00081 <span class="keyword">public</span>:
<a name="l00082"></a>00082 
<a name="l00083"></a><a class="code" href="classXPathExecutionContext.html#af0a391e595e36ca41b33fe0d42ddacd0">00083</a>     <span class="keyword">typedef</span> <a class="code" href="classXalanVector.html">XalanVector&lt;XObjectPtr&gt;</a>         <a class="code" href="classXalanVector.html">XObjectArgVectorType</a>;
<a name="l00084"></a>00084 
<a name="l00085"></a><a class="code" href="classXPathExecutionContext.html#ada886bab8562a11693b610f8be1370ea">00085</a>     <span class="keyword">typedef</span> <a class="code" href="classNodeRefListBase.html#a4a4343b0f47a5f789bb00f5fb3556337">NodeRefListBase::size_type</a>  size_type;
<a name="l00086"></a>00086 
<a name="l00087"></a>00087     <span class="keyword">explicit</span>
<a name="l00088"></a>00088     <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>(
<a name="l00089"></a>00089             MemoryManager&amp;      theMemoryManager,
<a name="l00090"></a>00090             XObjectFactory*     theXObjectFactory = 0);
<a name="l00091"></a>00091 
<a name="l00092"></a>00092     <span class="keyword">virtual</span>
<a name="l00093"></a>00093     ~<a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>();
<a name="l00094"></a>00094 <span class="comment"></span>
<a name="l00095"></a>00095 <span class="comment">    /**</span>
<a name="l00096"></a>00096 <span class="comment">     * Reset the instance.  This must be called before another</span>
<a name="l00097"></a>00097 <span class="comment">     * execution is attempted.</span>
<a name="l00098"></a>00098 <span class="comment">     */</span>
<a name="l00099"></a>00099     <span class="keyword">virtual</span> <span class="keywordtype">void</span>
<a name="l00100"></a>00100     reset() = 0;
<a name="l00101"></a>00101 <span class="comment"></span>
<a name="l00102"></a>00102 <span class="comment">    /**</span>
<a name="l00103"></a>00103 <span class="comment">     * Retrieve the node currently being executed.</span>
<a name="l00104"></a>00104 <span class="comment">     * </span>
<a name="l00105"></a>00105 <span class="comment">     * @return current node</span>
<a name="l00106"></a>00106 <span class="comment">     */</span>
<a name="l00107"></a>00107     <span class="keyword">virtual</span> XalanNode*
<a name="l00108"></a>00108     getCurrentNode() <span class="keyword">const</span> = 0;
<a name="l00109"></a>00109 <span class="comment"></span>
<a name="l00110"></a>00110 <span class="comment">    /**</span>
<a name="l00111"></a>00111 <span class="comment">     * Change the node currently being executed.</span>
<a name="l00112"></a>00112 <span class="comment">     * </span>
<a name="l00113"></a>00113 <span class="comment">     * @param theCurrentNode new current node</span>
<a name="l00114"></a>00114 <span class="comment">     */</span>
<a name="l00115"></a>00115     <span class="keyword">virtual</span> <span class="keywordtype">void</span>
<a name="l00116"></a>00116     pushCurrentNode(XalanNode*  theCurrentNode) = 0;
<a name="l00117"></a>00117 <span class="comment"></span>
<a name="l00118"></a>00118 <span class="comment">    /**</span>
<a name="l00119"></a>00119 <span class="comment">     * Reset the node currently being executed.</span>
<a name="l00120"></a>00120 <span class="comment">     */</span>
<a name="l00121"></a>00121     <span class="keyword">virtual</span> <span class="keywordtype">void</span>
<a name="l00122"></a>00122     popCurrentNode() = 0;
<a name="l00123"></a>00123 
<a name="l00124"></a><a class="code" href="classXPathExecutionContext_1_1CurrentNodePushAndPop.html">00124</a>     <span class="keyword">class </span><a class="code" href="classXPathExecutionContext_1_1CurrentNodePushAndPop.html">CurrentNodePushAndPop</a>
<a name="l00125"></a>00125     {
<a name="l00126"></a>00126     <span class="keyword">public</span>:
<a name="l00127"></a>00127 
<a name="l00128"></a><a class="code" href="classXPathExecutionContext_1_1CurrentNodePushAndPop.html#ac5c66b2954a6b1839c26431024b2575d">00128</a>         <a class="code" href="classXPathExecutionContext_1_1CurrentNodePushAndPop.html">CurrentNodePushAndPop</a>(
<a name="l00129"></a>00129                 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp;  theExecutionContext,
<a name="l00130"></a>00130                 XalanNode*              theNewNode) :
<a name="l00131"></a>00131             m_executionContext(theExecutionContext)
<a name="l00132"></a>00132         {
<a name="l00133"></a>00133             theExecutionContext.<a class="code" href="classXPathExecutionContext.html#a4c453fc9ae769643a13fcf4637b268dd" title="Change the node currently being executed.">pushCurrentNode</a>(theNewNode);
<a name="l00134"></a>00134         }
<a name="l00135"></a>00135 
<a name="l00136"></a><a class="code" href="classXPathExecutionContext_1_1CurrentNodePushAndPop.html#ab23ec96e1e78b0c9d2de3726a1b2fce6">00136</a>         ~<a class="code" href="classXPathExecutionContext_1_1CurrentNodePushAndPop.html">CurrentNodePushAndPop</a>()
<a name="l00137"></a>00137         {
<a name="l00138"></a>00138             m_executionContext.popCurrentNode();
<a name="l00139"></a>00139         }
<a name="l00140"></a>00140 
<a name="l00141"></a>00141     <span class="keyword">private</span>:
<a name="l00142"></a>00142 
<a name="l00143"></a>00143         <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp;  m_executionContext;
<a name="l00144"></a>00144     };
<a name="l00145"></a>00145 <span class="comment"></span>
<a name="l00146"></a>00146 <span class="comment">    /**</span>
<a name="l00147"></a>00147 <span class="comment">     * Retrieve the factory object for creating XObjects.</span>
<a name="l00148"></a>00148 <span class="comment">     * </span>
<a name="l00149"></a>00149 <span class="comment">     * @return factory object instance</span>
<a name="l00150"></a>00150 <span class="comment">     */</span>
<a name="l00151"></a>00151     XObjectFactory&amp;
<a name="l00152"></a><a class="code" href="classXPathExecutionContext.html#a6429cefc174a87581764123038718d8e">00152</a>     getXObjectFactory()<span class="keyword"> const</span>
<a name="l00153"></a>00153 <span class="keyword">    </span>{
<a name="l00154"></a>00154         assert(m_xobjectFactory != 0);
<a name="l00155"></a>00155 
<a name="l00156"></a>00156         <span class="keywordflow">return</span> *m_xobjectFactory;
<a name="l00157"></a>00157     }
<a name="l00158"></a>00158 <span class="comment"></span>
<a name="l00159"></a>00159 <span class="comment">    /**</span>
<a name="l00160"></a>00160 <span class="comment">     * Determine if a node is after another node, in document order.</span>
<a name="l00161"></a>00161 <span class="comment">     *</span>
<a name="l00162"></a>00162 <span class="comment">     * @param node1 The first node</span>
<a name="l00163"></a>00163 <span class="comment">     * @param node2 The second node</span>
<a name="l00164"></a>00164 <span class="comment">     * @return true if node1 one is after node2, or false if it is not.</span>
<a name="l00165"></a>00165 <span class="comment">     */</span>
<a name="l00166"></a>00166     <span class="keyword">virtual</span> <span class="keywordtype">bool</span>
<a name="l00167"></a>00167     isNodeAfter(
<a name="l00168"></a>00168             <span class="keyword">const</span> XalanNode&amp;    node1,
<a name="l00169"></a>00169             <span class="keyword">const</span> XalanNode&amp;    node2) <span class="keyword">const</span> = 0;
<a name="l00170"></a>00170 <span class="comment"></span>
<a name="l00171"></a>00171 <span class="comment">    /**</span>
<a name="l00172"></a>00172 <span class="comment">     * Push the node list for current context.</span>
<a name="l00173"></a>00173 <span class="comment">     * </span>
<a name="l00174"></a>00174 <span class="comment">     * @param theList new node list</span>
<a name="l00175"></a>00175 <span class="comment">     */</span>
<a name="l00176"></a>00176     <span class="keyword">virtual</span> <span class="keywordtype">void</span>
<a name="l00177"></a>00177     pushContextNodeList(<span class="keyword">const</span> <a class="code" href="classNodeRefListBase.html" title="Local implementation of NodeRefList.">NodeRefListBase</a>&amp;  theList) = 0;
<a name="l00178"></a>00178 <span class="comment"></span>
<a name="l00179"></a>00179 <span class="comment">    /**</span>
<a name="l00180"></a>00180 <span class="comment">     * Pop the node list for current context.</span>
<a name="l00181"></a>00181 <span class="comment">     */</span>
<a name="l00182"></a>00182     <span class="keyword">virtual</span> <span class="keywordtype">void</span>    
<a name="l00183"></a>00183     popContextNodeList() = 0;
<a name="l00184"></a>00184 
<a name="l00185"></a><a class="code" href="classXPathExecutionContext_1_1ContextNodeListPushAndPop.html">00185</a>     <span class="keyword">class </span><a class="code" href="classXPathExecutionContext_1_1ContextNodeListPushAndPop.html">ContextNodeListPushAndPop</a>
<a name="l00186"></a>00186     {
<a name="l00187"></a>00187     <span class="keyword">public</span>:
<a name="l00188"></a>00188 
<a name="l00189"></a><a class="code" href="classXPathExecutionContext_1_1ContextNodeListPushAndPop.html#a07edb2c28cc6a0ff2eedebb78fe3935f">00189</a>         <a class="code" href="classXPathExecutionContext_1_1ContextNodeListPushAndPop.html">ContextNodeListPushAndPop</a>(
<a name="l00190"></a>00190                 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp;      theExecutionContext,
<a name="l00191"></a>00191                 <span class="keyword">const</span> <a class="code" href="classNodeRefListBase.html" title="Local implementation of NodeRefList.">NodeRefListBase</a>&amp;      theNodeList) :
<a name="l00192"></a>00192             m_executionContext(theExecutionContext)
<a name="l00193"></a>00193         {
<a name="l00194"></a>00194             m_executionContext.pushContextNodeList(theNodeList);
<a name="l00195"></a>00195         }
<a name="l00196"></a>00196 
<a name="l00197"></a><a class="code" href="classXPathExecutionContext_1_1ContextNodeListPushAndPop.html#a277409d1ec3be3764bf618281605b426">00197</a>         ~<a class="code" href="classXPathExecutionContext_1_1ContextNodeListPushAndPop.html">ContextNodeListPushAndPop</a>()
<a name="l00198"></a>00198         {
<a name="l00199"></a>00199             m_executionContext.popContextNodeList();
<a name="l00200"></a>00200         }
<a name="l00201"></a>00201 
<a name="l00202"></a>00202     <span class="keyword">private</span>:
<a name="l00203"></a>00203 
<a name="l00204"></a>00204         <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp;  m_executionContext;
<a name="l00205"></a>00205     };
<a name="l00206"></a>00206 <span class="comment"></span>
<a name="l00207"></a>00207 <span class="comment">    /**</span>
<a name="l00208"></a>00208 <span class="comment">     * Get the node list for current context.</span>
<a name="l00209"></a>00209 <span class="comment">     * </span>
<a name="l00210"></a>00210 <span class="comment">     * @return node list</span>
<a name="l00211"></a>00211 <span class="comment">     */</span>
<a name="l00212"></a>00212     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classNodeRefListBase.html" title="Local implementation of NodeRefList.">NodeRefListBase</a>&amp;
<a name="l00213"></a>00213     getContextNodeList() <span class="keyword">const</span> = 0;
<a name="l00214"></a>00214 
<a name="l00215"></a>00215     <span class="comment">/*</span>
<a name="l00216"></a>00216 <span class="comment">     * Get the count of nodes in the current context node list.</span>
<a name="l00217"></a>00217 <span class="comment">     *</span>
<a name="l00218"></a>00218 <span class="comment">     * @return length of list</span>
<a name="l00219"></a>00219 <span class="comment">     */</span>
<a name="l00220"></a>00220     <span class="keyword">virtual</span> size_type
<a name="l00221"></a>00221     getContextNodeListLength() <span class="keyword">const</span> = 0;
<a name="l00222"></a>00222 
<a name="l00223"></a>00223     <span class="comment">/*</span>
<a name="l00224"></a>00224 <span class="comment">     * Get the position of the node in the current context node list.</span>
<a name="l00225"></a>00225 <span class="comment">     * Note that this is 1-based indexing (XPath/XSLT-style), not 0-based.</span>
<a name="l00226"></a>00226 <span class="comment">     * Thus, 0 will be returned if the node was not found.</span>
<a name="l00227"></a>00227 <span class="comment">     *</span>
<a name="l00228"></a>00228 <span class="comment">     * @return position in list</span>
<a name="l00229"></a>00229 <span class="comment">     */</span>
<a name="l00230"></a>00230     <span class="keyword">virtual</span> size_type
<a name="l00231"></a>00231     getContextNodeListPosition(<span class="keyword">const</span> XalanNode&amp;     contextNode) <span class="keyword">const</span> = 0;
<a name="l00232"></a>00232 <span class="comment"></span>
<a name="l00233"></a>00233 <span class="comment">    /**</span>
<a name="l00234"></a>00234 <span class="comment">     * Determine if an external element is available.</span>
<a name="l00235"></a>00235 <span class="comment">     *</span>
<a name="l00236"></a>00236 <span class="comment">     * @param theQName The QName of the element</span>
<a name="l00237"></a>00237 <span class="comment">     *</span>
<a name="l00238"></a>00238 <span class="comment">     * @return whether the given element is available or not</span>
<a name="l00239"></a>00239 <span class="comment">     */</span>
<a name="l00240"></a>00240 
<a name="l00241"></a>00241     <span class="keyword">virtual</span> <span class="keywordtype">bool</span>
<a name="l00242"></a>00242     elementAvailable(<span class="keyword">const</span> XalanQName&amp;  theQName) <span class="keyword">const</span> = 0;
<a name="l00243"></a>00243 <span class="comment"></span>
<a name="l00244"></a>00244 <span class="comment">    /**</span>
<a name="l00245"></a>00245 <span class="comment">     * Determine if an external element is available by resolving</span>
<a name="l00246"></a>00246 <span class="comment">     * a string to a QName.</span>
<a name="l00247"></a>00247 <span class="comment">     *</span>
<a name="l00248"></a>00248 <span class="comment">     * @param theName The name of the element</span>
<a name="l00249"></a>00249 <span class="comment">     * @param locator A Locator instance for error reporting</span>
<a name="l00250"></a>00250 <span class="comment">     *</span>
<a name="l00251"></a>00251 <span class="comment">     * @return whether the given element is available or not</span>
<a name="l00252"></a>00252 <span class="comment">     */</span>
<a name="l00253"></a>00253     <span class="keyword">virtual</span> <span class="keywordtype">bool</span>
<a name="l00254"></a>00254     elementAvailable(
<a name="l00255"></a>00255             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   theName,
<a name="l00256"></a>00256             <span class="keyword">const</span> Locator*          locator) <span class="keyword">const</span> = 0;
<a name="l00257"></a>00257 <span class="comment"></span>
<a name="l00258"></a>00258 <span class="comment">    /**</span>
<a name="l00259"></a>00259 <span class="comment">     * Determine if a function is available.</span>
<a name="l00260"></a>00260 <span class="comment">     *</span>
<a name="l00261"></a>00261 <span class="comment">     * @param theQName The QName of the function</span>
<a name="l00262"></a>00262 <span class="comment">     *</span>
<a name="l00263"></a>00263 <span class="comment">     * @return whether the function is available or not</span>
<a name="l00264"></a>00264 <span class="comment">     */</span>
<a name="l00265"></a>00265     <span class="keyword">virtual</span> <span class="keywordtype">bool</span>
<a name="l00266"></a>00266     functionAvailable(<span class="keyword">const</span> XalanQName&amp;     theQName) <span class="keyword">const</span> = 0;
<a name="l00267"></a>00267 <span class="comment"></span>
<a name="l00268"></a>00268 <span class="comment">    /**</span>
<a name="l00269"></a>00269 <span class="comment">     * Determine if a function is available.</span>
<a name="l00270"></a>00270 <span class="comment">     *</span>
<a name="l00271"></a>00271 <span class="comment">     * @param theName The name of the function</span>
<a name="l00272"></a>00272 <span class="comment">     * @param locator A Locator instance for error reporting</span>
<a name="l00273"></a>00273 <span class="comment">     *</span>
<a name="l00274"></a>00274 <span class="comment">     * @return whether the function is available or not</span>
<a name="l00275"></a>00275 <span class="comment">     */</span>
<a name="l00276"></a>00276     <span class="keyword">virtual</span> <span class="keywordtype">bool</span>
<a name="l00277"></a>00277     functionAvailable(
<a name="l00278"></a>00278             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   theName,
<a name="l00279"></a>00279             <span class="keyword">const</span> Locator*          locator) <span class="keyword">const</span> = 0;
<a name="l00280"></a>00280 <span class="comment"></span>
<a name="l00281"></a>00281 <span class="comment">    /**</span>
<a name="l00282"></a>00282 <span class="comment">     * Handle an extension function.</span>
<a name="l00283"></a>00283 <span class="comment">     * </span>
<a name="l00284"></a>00284 <span class="comment">     * @param theNamespace  namespace of function    </span>
<a name="l00285"></a>00285 <span class="comment">     * @param functionName extension function name</span>
<a name="l00286"></a>00286 <span class="comment">     * @param context The context node</span>
<a name="l00287"></a>00287 <span class="comment">     * @param argVec vector of arguments to function</span>
<a name="l00288"></a>00288 <span class="comment">     * @param locator A Locator instance for error reporting</span>
<a name="l00289"></a>00289 <span class="comment">     * @return pointer to XObject result</span>
<a name="l00290"></a>00290 <span class="comment">     */</span>
<a name="l00291"></a>00291     <span class="keyword">virtual</span> <span class="keyword">const</span> XObjectPtr
<a name="l00292"></a>00292     extFunction(
<a name="l00293"></a>00293             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;           theNamespace,
<a name="l00294"></a>00294             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;           functionName,
<a name="l00295"></a>00295             XalanNode*                      context,
<a name="l00296"></a>00296             <span class="keyword">const</span> XObjectArgVectorType&amp;     argVec,
<a name="l00297"></a>00297             <span class="keyword">const</span> Locator*                  locator) = 0;
<a name="l00298"></a>00298 <span class="comment"></span>
<a name="l00299"></a>00299 <span class="comment">    /**</span>
<a name="l00300"></a>00300 <span class="comment">     * Provides support for XML parsing service.</span>
<a name="l00301"></a>00301 <span class="comment">     *</span>
<a name="l00302"></a>00302 <span class="comment">     * @param theManager The MemoryManager instance to use.</span>
<a name="l00303"></a>00303 <span class="comment">     * @param urlString location of the XML</span>
<a name="l00304"></a>00304 <span class="comment">     * @param base base location for URI</span>
<a name="l00305"></a>00305 <span class="comment">     * @param theErrorHandler An optional ErrorHandler instance for error reporting.</span>
<a name="l00306"></a>00306 <span class="comment">     * @return parsed document</span>
<a name="l00307"></a>00307 <span class="comment">     */</span>
<a name="l00308"></a>00308     <span class="keyword">virtual</span> XalanDocument*
<a name="l00309"></a>00309     parseXML(
<a name="l00310"></a>00310             MemoryManager&amp;      theManager,
<a name="l00311"></a>00311             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   urlString,
<a name="l00312"></a>00312             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   base,
<a name="l00313"></a>00313             ErrorHandler*           theErrorHandler = 0) <span class="keyword">const</span> = 0;
<a name="l00314"></a>00314 <span class="comment"></span>
<a name="l00315"></a>00315 <span class="comment">    /**</span>
<a name="l00316"></a>00316 <span class="comment">     * Borrow a cached MutableNodeRefList instance.</span>
<a name="l00317"></a>00317 <span class="comment">     *</span>
<a name="l00318"></a>00318 <span class="comment">     * @return A pointer to the instance.</span>
<a name="l00319"></a>00319 <span class="comment">     */</span>
<a name="l00320"></a>00320     <span class="keyword">virtual</span> <a class="code" href="classMutableNodeRefList.html" title="Local implementation of MutableNodeRefList.">MutableNodeRefList</a>*
<a name="l00321"></a>00321     borrowMutableNodeRefList() = 0;
<a name="l00322"></a>00322 <span class="comment"></span>
<a name="l00323"></a>00323 <span class="comment">    /**</span>
<a name="l00324"></a>00324 <span class="comment">     * Return a previously borrowed MutableNodeRefList instance.</span>
<a name="l00325"></a>00325 <span class="comment">     *</span>
<a name="l00326"></a>00326 <span class="comment">     * @param theList A pointer the to previously borrowed instance.</span>
<a name="l00327"></a>00327 <span class="comment">     * @return true if the list was borrowed (at therefore, destroyed), false if not.</span>
<a name="l00328"></a>00328 <span class="comment">     */</span>
<a name="l00329"></a>00329     <span class="keyword">virtual</span> <span class="keywordtype">bool</span>
<a name="l00330"></a>00330     returnMutableNodeRefList(<a class="code" href="classMutableNodeRefList.html" title="Local implementation of MutableNodeRefList.">MutableNodeRefList</a>*    theList) = 0;
<a name="l00331"></a>00331 
<a name="l00332"></a><a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html">00332</a>     <span class="keyword">class </span><a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html">GetCachedNodeList</a>
<a name="l00333"></a>00333     {
<a name="l00334"></a>00334     <span class="keyword">public</span>:
<a name="l00335"></a>00335 
<a name="l00336"></a><a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html#ad2396035328fa877813323d1a9447c80">00336</a>         <a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html">GetCachedNodeList</a>(<a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp;    executionContext) :
<a name="l00337"></a>00337             m_xpathExecutionContext(&amp;executionContext),
<a name="l00338"></a>00338             m_mutableNodeRefList(executionContext.borrowMutableNodeRefList())
<a name="l00339"></a>00339         {
<a name="l00340"></a>00340             assert(m_mutableNodeRefList != 0);
<a name="l00341"></a>00341         }
<a name="l00342"></a>00342 
<a name="l00343"></a>00343         <span class="comment">// N.B. Non-const copy constructor semantics (like std::auto_ptr)</span>
<a name="l00344"></a><a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html#a0ef47b1674a1c87c2ff71433268972bf">00344</a>         <a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html">GetCachedNodeList</a>(<span class="keyword">const</span> <a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html">GetCachedNodeList</a>&amp;  theSource) :
<a name="l00345"></a>00345             m_xpathExecutionContext(theSource.m_xpathExecutionContext),
<a name="l00346"></a>00346             m_mutableNodeRefList(theSource.m_mutableNodeRefList)
<a name="l00347"></a>00347         {
<a name="l00348"></a>00348             assert(m_mutableNodeRefList != 0);
<a name="l00349"></a>00349 
<a name="l00350"></a>00350             ((<a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html">BorrowReturnMutableNodeRefList</a>&amp;)theSource).m_mutableNodeRefList = 0;
<a name="l00351"></a>00351         }
<a name="l00352"></a>00352 
<a name="l00353"></a><a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html#a7fdb7dee6b361d29fcaa5ba6e06d1f8c">00353</a>         ~<a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html">GetCachedNodeList</a>()
<a name="l00354"></a>00354         {
<a name="l00355"></a>00355             release();
<a name="l00356"></a>00356         }
<a name="l00357"></a>00357 
<a name="l00358"></a>00358         <a class="code" href="classMutableNodeRefList.html" title="Local implementation of MutableNodeRefList.">MutableNodeRefList</a>&amp;
<a name="l00359"></a><a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html#afcb6a183b2155419ece9b65a823e9d26">00359</a>         operator*()<span class="keyword"> const</span>
<a name="l00360"></a>00360 <span class="keyword">        </span>{
<a name="l00361"></a>00361             assert(m_mutableNodeRefList != 0);
<a name="l00362"></a>00362 
<a name="l00363"></a>00363             <span class="keywordflow">return</span> *m_mutableNodeRefList;
<a name="l00364"></a>00364         }
<a name="l00365"></a>00365 
<a name="l00366"></a>00366         <a class="code" href="classMutableNodeRefList.html" title="Local implementation of MutableNodeRefList.">MutableNodeRefList</a>*
<a name="l00367"></a><a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html#a7bd163a073d76ab019c4fcd26703ce65">00367</a>         <span class="keyword">get</span>() <span class="keyword">const</span>
<a name="l00368"></a>00368         {
<a name="l00369"></a>00369             <span class="keywordflow">return</span> m_mutableNodeRefList;
<a name="l00370"></a>00370         }
<a name="l00371"></a>00371 
<a name="l00372"></a>00372         <a class="code" href="classMutableNodeRefList.html" title="Local implementation of MutableNodeRefList.">MutableNodeRefList</a>*
<a name="l00373"></a><a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html#aff2b16d765ef44df81c5de9cb9fa1273">00373</a>         operator-&gt;()<span class="keyword"> const</span>
<a name="l00374"></a>00374 <span class="keyword">        </span>{
<a name="l00375"></a>00375             <span class="keywordflow">return</span> <span class="keyword">get</span>();
<a name="l00376"></a>00376         }
<a name="l00377"></a>00377 
<a name="l00378"></a>00378         <span class="keywordtype">void</span>
<a name="l00379"></a><a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html#afb6bbbbce7369e7d746a65996c3669f5">00379</a>         release()
<a name="l00380"></a>00380         {
<a name="l00381"></a>00381             assert(m_xpathExecutionContext != 0);
<a name="l00382"></a>00382 
<a name="l00383"></a>00383             <span class="keywordflow">if</span> (m_mutableNodeRefList != 0)
<a name="l00384"></a>00384             {
<a name="l00385"></a>00385                 m_xpathExecutionContext-&gt;returnMutableNodeRefList(m_mutableNodeRefList);
<a name="l00386"></a>00386 
<a name="l00387"></a>00387                 m_mutableNodeRefList = 0;
<a name="l00388"></a>00388             }
<a name="l00389"></a>00389         }
<a name="l00390"></a>00390 
<a name="l00391"></a>00391         <a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html">GetCachedNodeList</a>
<a name="l00392"></a><a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html#aaa03608c67c01140aa59ae6b1b3606df">00392</a>         clone()<span class="keyword"> const</span>
<a name="l00393"></a>00393 <span class="keyword">        </span>{
<a name="l00394"></a>00394             assert(m_xpathExecutionContext != 0);
<a name="l00395"></a>00395 
<a name="l00396"></a>00396             <a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html">GetCachedNodeList</a>   <a class="code" href="XalanDOMString_8hpp.html#ad0987a2085caff760532b7f16b5c6f2e">theResult</a>(*m_xpathExecutionContext);
<a name="l00397"></a>00397 
<a name="l00398"></a>00398             *theResult = *m_mutableNodeRefList;
<a name="l00399"></a>00399 
<a name="l00400"></a>00400             <span class="keywordflow">return</span> theResult;
<a name="l00401"></a>00401         }
<a name="l00402"></a>00402 
<a name="l00403"></a>00403         <span class="comment">// N.B. Non-const assignment operator semantics.</span>
<a name="l00404"></a>00404         <a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html">GetCachedNodeList</a>&amp;
<a name="l00405"></a><a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html#abcf47207988ee8dad5fc293a43a39aaa">00405</a>         operator=(<a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html">GetCachedNodeList</a>&amp;    theRHS)
<a name="l00406"></a>00406         {
<a name="l00407"></a>00407             release();
<a name="l00408"></a>00408 
<a name="l00409"></a>00409             m_xpathExecutionContext = theRHS.m_xpathExecutionContext;
<a name="l00410"></a>00410 
<a name="l00411"></a>00411             m_mutableNodeRefList = theRHS.m_mutableNodeRefList;
<a name="l00412"></a>00412 
<a name="l00413"></a>00413             theRHS.m_mutableNodeRefList = 0;
<a name="l00414"></a>00414 
<a name="l00415"></a>00415             <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00416"></a>00416         }
<a name="l00417"></a>00417 
<a name="l00418"></a>00418     <span class="keyword">private</span>:
<a name="l00419"></a>00419 
<a name="l00420"></a>00420         <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>*  m_xpathExecutionContext;
<a name="l00421"></a>00421 
<a name="l00422"></a>00422         <a class="code" href="classMutableNodeRefList.html" title="Local implementation of MutableNodeRefList.">MutableNodeRefList</a>*     m_mutableNodeRefList;
<a name="l00423"></a>00423     };
<a name="l00424"></a>00424 
<a name="l00425"></a><a class="code" href="classXPathExecutionContext.html#a60ef39d65df2ac84038065a2a0942f7b">00425</a>     <span class="keyword">typedef</span> <a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html">GetCachedNodeList</a>   <a class="code" href="classXPathExecutionContext_1_1GetCachedNodeList.html">BorrowReturnMutableNodeRefList</a>;
<a name="l00426"></a>00426 <span class="comment"></span>
<a name="l00427"></a>00427 <span class="comment">    /**</span>
<a name="l00428"></a>00428 <span class="comment">     * Get a cached string for temporary use.</span>
<a name="l00429"></a>00429 <span class="comment">     *</span>
<a name="l00430"></a>00430 <span class="comment">     * @return A reference to the string</span>
<a name="l00431"></a>00431 <span class="comment">     */</span>
<a name="l00432"></a>00432     <span class="keyword">virtual</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00433"></a>00433     getCachedString() = 0;
<a name="l00434"></a>00434 <span class="comment"></span>
<a name="l00435"></a>00435 <span class="comment">    /**</span>
<a name="l00436"></a>00436 <span class="comment">     * Return a cached string.</span>
<a name="l00437"></a>00437 <span class="comment">     *</span>
<a name="l00438"></a>00438 <span class="comment">     * @param theString The string to release.</span>
<a name="l00439"></a>00439 <span class="comment">     *</span>
<a name="l00440"></a>00440 <span class="comment">     * @return true if the string was released successfully.</span>
<a name="l00441"></a>00441 <span class="comment">     */</span>
<a name="l00442"></a>00442     <span class="keyword">virtual</span> <span class="keywordtype">bool</span>
<a name="l00443"></a>00443     releaseCachedString(<a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;     theString) = 0;
<a name="l00444"></a>00444 
<a name="l00445"></a><a class="code" href="classXPathExecutionContext_1_1GetCachedString.html">00445</a>     <span class="keyword">class </span><a class="code" href="classXPathExecutionContext_1_1GetCachedString.html">GetCachedString</a>
<a name="l00446"></a>00446     {
<a name="l00447"></a>00447     <span class="keyword">public</span>:
<a name="l00448"></a>00448 
<a name="l00449"></a><a class="code" href="classXPathExecutionContext_1_1GetCachedString.html#aa3ed585edff02480963c04b5d74018e7">00449</a>         <a class="code" href="classXPathExecutionContext_1_1GetCachedString.html">GetCachedString</a>(<a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp;  theExecutionContext) :
<a name="l00450"></a>00450             m_executionContext(&amp;theExecutionContext),
<a name="l00451"></a>00451             m_string(&amp;theExecutionContext.getCachedString())
<a name="l00452"></a>00452         {
<a name="l00453"></a>00453         }
<a name="l00454"></a>00454 
<a name="l00455"></a>00455         <span class="comment">// Note non-const copy semantics...</span>
<a name="l00456"></a><a class="code" href="classXPathExecutionContext_1_1GetCachedString.html#acc7d71c9d1e983b3f26a06916395bba0">00456</a>         <a class="code" href="classXPathExecutionContext_1_1GetCachedString.html">GetCachedString</a>(<a class="code" href="classXPathExecutionContext_1_1GetCachedString.html">GetCachedString</a>&amp;    theSource) :
<a name="l00457"></a>00457             m_executionContext(theSource.m_executionContext),
<a name="l00458"></a>00458             m_string(theSource.m_string)
<a name="l00459"></a>00459         {
<a name="l00460"></a>00460             theSource.m_string = 0;
<a name="l00461"></a>00461         }
<a name="l00462"></a>00462 
<a name="l00463"></a><a class="code" href="classXPathExecutionContext_1_1GetCachedString.html#a9738f0da4bd77566e212b844c75e4c6e">00463</a>         ~<a class="code" href="classXPathExecutionContext_1_1GetCachedString.html">GetCachedString</a>()
<a name="l00464"></a>00464         {
<a name="l00465"></a>00465             <span class="keywordflow">if</span> (m_string != 0)
<a name="l00466"></a>00466             {
<a name="l00467"></a>00467                 m_executionContext-&gt;releaseCachedString(*m_string);
<a name="l00468"></a>00468             }
<a name="l00469"></a>00469         }
<a name="l00470"></a>00470 
<a name="l00471"></a>00471         <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00472"></a><a class="code" href="classXPathExecutionContext_1_1GetCachedString.html#a691319cad53c1fff113f609d84d0df1e">00472</a>         <span class="keyword">get</span>() <span class="keyword">const</span>
<a name="l00473"></a>00473         {
<a name="l00474"></a>00474             assert(m_string != 0);
<a name="l00475"></a>00475 
<a name="l00476"></a>00476             <span class="keywordflow">return</span> *m_string;
<a name="l00477"></a>00477         }
<a name="l00478"></a>00478 
<a name="l00479"></a>00479         <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp;
<a name="l00480"></a><a class="code" href="classXPathExecutionContext_1_1GetCachedString.html#ac77f835684700f22bad93aeefd6f9300">00480</a>         getExecutionContext()<span class="keyword"> const</span>
<a name="l00481"></a>00481 <span class="keyword">        </span>{
<a name="l00482"></a>00482             <span class="keywordflow">return</span> *m_executionContext;
<a name="l00483"></a>00483         }
<a name="l00484"></a>00484 
<a name="l00485"></a>00485     <span class="keyword">private</span>:
<a name="l00486"></a>00486 
<a name="l00487"></a>00487         <span class="comment">// Not implemented...</span>
<a name="l00488"></a>00488         <a class="code" href="classXPathExecutionContext_1_1GetCachedString.html">GetCachedString</a>();
<a name="l00489"></a>00489 
<a name="l00490"></a>00490         <a class="code" href="classXPathExecutionContext_1_1GetCachedString.html">GetCachedString</a>(<span class="keyword">const</span> <a class="code" href="classXPathExecutionContext_1_1GetCachedString.html">GetCachedString</a>&amp;);
<a name="l00491"></a>00491 
<a name="l00492"></a>00492         <a class="code" href="classXPathExecutionContext_1_1GetCachedString.html">GetCachedString</a>&amp;
<a name="l00493"></a>00493         operator=(<span class="keyword">const</span> <a class="code" href="classXPathExecutionContext_1_1GetCachedString.html">GetCachedString</a>&amp;);
<a name="l00494"></a>00494 
<a name="l00495"></a>00495 
<a name="l00496"></a>00496         <span class="comment">// Data members...</span>
<a name="l00497"></a>00497         <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>*  m_executionContext;
<a name="l00498"></a>00498 
<a name="l00499"></a>00499         <a class="code" href="classXalanDOMString.html">XalanDOMString</a>*         m_string;
<a name="l00500"></a>00500     };
<a name="l00501"></a>00501 
<a name="l00502"></a><a class="code" href="classXPathExecutionContext.html#a4046f0aab28a956b189789fee1f6fd7a">00502</a>     <span class="keyword">typedef</span> <a class="code" href="classXPathExecutionContext_1_1GetCachedString.html">GetCachedString</a>     <a class="code" href="classXPathExecutionContext_1_1GetCachedString.html">GetAndReleaseCachedString</a>;
<a name="l00503"></a>00503 <span class="comment"></span>
<a name="l00504"></a>00504 <span class="comment">    /**</span>
<a name="l00505"></a>00505 <span class="comment">     * Create a MutableNodeRefList with the appropriate context.</span>
<a name="l00506"></a>00506 <span class="comment">     *</span>
<a name="l00507"></a>00507 <span class="comment">     * @return pointer to node list created</span>
<a name="l00508"></a>00508 <span class="comment">     */</span>
<a name="l00509"></a>00509     <span class="keyword">virtual</span> <a class="code" href="classMutableNodeRefList.html" title="Local implementation of MutableNodeRefList.">MutableNodeRefList</a>*
<a name="l00510"></a>00510     createMutableNodeRefList(MemoryManager&amp; theManager) <span class="keyword">const</span> = 0;
<a name="l00511"></a>00511 <span class="comment"></span>
<a name="l00512"></a>00512 <span class="comment">    /**</span>
<a name="l00513"></a>00513 <span class="comment">     * Given a valid element key, return the corresponding node list.</span>
<a name="l00514"></a>00514 <span class="comment">     *</span>
<a name="l00515"></a>00515 <span class="comment">     * @param context          context node</span>
<a name="l00516"></a>00516 <span class="comment">     * @param name             qname of the key, which must match the &#39;name&#39;</span>
<a name="l00517"></a>00517 <span class="comment">     *                         attribute on xsl:key</span>
<a name="l00518"></a>00518 <span class="comment">     * @param ref              value that must match the value found by the</span>
<a name="l00519"></a>00519 <span class="comment">     *                         &#39;match&#39; attribute on xsl:key</span>
<a name="l00520"></a>00520 <span class="comment">     * @param locator          The Locator to use for error reporting.  Can be 0.</span>
<a name="l00521"></a>00521 <span class="comment">     * @param nodelist         A node list to contain the nodes found</span>
<a name="l00522"></a>00522 <span class="comment">     */</span>
<a name="l00523"></a>00523     <span class="keyword">virtual</span> <span class="keywordtype">void</span>
<a name="l00524"></a>00524     getNodeSetByKey(
<a name="l00525"></a>00525             XalanNode*              context,
<a name="l00526"></a>00526             <span class="keyword">const</span> XalanQName&amp;       qname,
<a name="l00527"></a>00527             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   ref,
<a name="l00528"></a>00528             <span class="keyword">const</span> Locator*          locator,
<a name="l00529"></a>00529             <a class="code" href="classMutableNodeRefList.html" title="Local implementation of MutableNodeRefList.">MutableNodeRefList</a>&amp;     nodelist) = 0;
<a name="l00530"></a>00530 <span class="comment"></span>
<a name="l00531"></a>00531 <span class="comment">    /**</span>
<a name="l00532"></a>00532 <span class="comment">     * Given a valid element key, return the corresponding node list.</span>
<a name="l00533"></a>00533 <span class="comment">     *</span>
<a name="l00534"></a>00534 <span class="comment">     * @param context          context node</span>
<a name="l00535"></a>00535 <span class="comment">     * @param name             name of the key, which must match the &#39;name&#39;</span>
<a name="l00536"></a>00536 <span class="comment">     *                         attribute on xsl:key.  Will be resolved to a</span>
<a name="l00537"></a>00537 <span class="comment">     *                         qname using the provided resolver.</span>
<a name="l00538"></a>00538 <span class="comment">     * @param ref              value that must match the value found by the</span>
<a name="l00539"></a>00539 <span class="comment">     *                         &#39;match&#39; attribute on xsl:key</span>
<a name="l00540"></a>00540 <span class="comment">     * @param locator          The Locator to use for error reporting.  Can be 0.</span>
<a name="l00541"></a>00541 <span class="comment">     * @param nodelist         A node list to contain the nodes found</span>
<a name="l00542"></a>00542 <span class="comment">     */</span>
<a name="l00543"></a>00543     <span class="keyword">virtual</span> <span class="keywordtype">void</span>
<a name="l00544"></a>00544     getNodeSetByKey(
<a name="l00545"></a>00545             XalanNode*              context,
<a name="l00546"></a>00546             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   name,
<a name="l00547"></a>00547             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   ref,
<a name="l00548"></a>00548             <span class="keyword">const</span> Locator*          locator,
<a name="l00549"></a>00549             <a class="code" href="classMutableNodeRefList.html" title="Local implementation of MutableNodeRefList.">MutableNodeRefList</a>&amp;     nodelist) = 0;
<a name="l00550"></a>00550 <span class="comment"></span>
<a name="l00551"></a>00551 <span class="comment">    /**</span>
<a name="l00552"></a>00552 <span class="comment">     * Given a name, locate a variable in the current context, and return </span>
<a name="l00553"></a>00553 <span class="comment">     * a pointer to the object.</span>
<a name="l00554"></a>00554 <span class="comment">     *</span>
<a name="l00555"></a>00555 <span class="comment">     * @param theName name of variable</span>
<a name="l00556"></a>00556 <span class="comment">     * @return An XObjectPtr instance.  If the variable is not found, an exception</span>
<a name="l00557"></a>00557 <span class="comment">     *         is thrown, or the routine returns an instance of XUnknown.</span>
<a name="l00558"></a>00558 <span class="comment">     */</span>
<a name="l00559"></a>00559     <span class="keyword">virtual</span> <span class="keyword">const</span> XObjectPtr
<a name="l00560"></a>00560     getVariable(
<a name="l00561"></a>00561             <span class="keyword">const</span> XalanQName&amp;   name,
<a name="l00562"></a>00562             <span class="keyword">const</span> Locator*      locator = 0) = 0;
<a name="l00563"></a>00563 <span class="comment"></span>
<a name="l00564"></a>00564 <span class="comment">    /**</span>
<a name="l00565"></a>00565 <span class="comment">     * Retrieve the resolver for namespaces.</span>
<a name="l00566"></a>00566 <span class="comment">     * </span>
<a name="l00567"></a>00567 <span class="comment">     * @return object for namespace resolution</span>
<a name="l00568"></a>00568 <span class="comment">     */</span>
<a name="l00569"></a>00569     <span class="keyword">virtual</span> <span class="keyword">const</span> PrefixResolver*
<a name="l00570"></a>00570     getPrefixResolver() <span class="keyword">const</span> = 0;
<a name="l00571"></a>00571 <span class="comment"></span>
<a name="l00572"></a>00572 <span class="comment">    /**</span>
<a name="l00573"></a>00573 <span class="comment">     * Change the resolver for namespaces.</span>
<a name="l00574"></a>00574 <span class="comment">     * </span>
<a name="l00575"></a>00575 <span class="comment">     * @param thePrefixResolver new object for namespace resolution</span>
<a name="l00576"></a>00576 <span class="comment">     */</span>
<a name="l00577"></a>00577     <span class="keyword">virtual</span> <span class="keywordtype">void</span>
<a name="l00578"></a>00578     setPrefixResolver(<span class="keyword">const</span> PrefixResolver*     thePrefixResolver) = 0;
<a name="l00579"></a>00579 
<a name="l00580"></a><a class="code" href="classXPathExecutionContext_1_1PrefixResolverSetAndRestore.html">00580</a>     <span class="keyword">class </span><a class="code" href="classXPathExecutionContext_1_1PrefixResolverSetAndRestore.html">PrefixResolverSetAndRestore</a>
<a name="l00581"></a>00581     {
<a name="l00582"></a>00582     <span class="keyword">public</span>:
<a name="l00583"></a>00583 
<a name="l00584"></a><a class="code" href="classXPathExecutionContext_1_1PrefixResolverSetAndRestore.html#a9845a195dbe3f41232ee7accdc81efd6">00584</a>         <a class="code" href="classXPathExecutionContext_1_1PrefixResolverSetAndRestore.html">PrefixResolverSetAndRestore</a>(
<a name="l00585"></a>00585                 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp;  theExecutionContext,
<a name="l00586"></a>00586                 <span class="keyword">const</span> PrefixResolver*   theResolver) :
<a name="l00587"></a>00587             m_executionContext(theExecutionContext),
<a name="l00588"></a>00588             m_savedResolver(theExecutionContext.getPrefixResolver())
<a name="l00589"></a>00589         {
<a name="l00590"></a>00590             m_executionContext.setPrefixResolver(theResolver);
<a name="l00591"></a>00591         }
<a name="l00592"></a>00592 
<a name="l00593"></a><a class="code" href="classXPathExecutionContext_1_1PrefixResolverSetAndRestore.html#a396f25f125789eeae19c348d18394eb8">00593</a>         <a class="code" href="classXPathExecutionContext_1_1PrefixResolverSetAndRestore.html">PrefixResolverSetAndRestore</a>(
<a name="l00594"></a>00594                 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp;  theExecutionContext,
<a name="l00595"></a>00595                 <span class="keyword">const</span> PrefixResolver*   theOldResolver,
<a name="l00596"></a>00596                 <span class="keyword">const</span> PrefixResolver*   theNewResolver) :
<a name="l00597"></a>00597             m_executionContext(theExecutionContext),
<a name="l00598"></a>00598             m_savedResolver(theOldResolver)
<a name="l00599"></a>00599         {
<a name="l00600"></a>00600             m_executionContext.setPrefixResolver(theNewResolver);
<a name="l00601"></a>00601         }
<a name="l00602"></a>00602 
<a name="l00603"></a><a class="code" href="classXPathExecutionContext_1_1PrefixResolverSetAndRestore.html#ae29332bf15e765ab6ccc56daa7a4e13b">00603</a>         ~<a class="code" href="classXPathExecutionContext_1_1PrefixResolverSetAndRestore.html">PrefixResolverSetAndRestore</a>()
<a name="l00604"></a>00604         {
<a name="l00605"></a>00605             m_executionContext.setPrefixResolver(m_savedResolver);
<a name="l00606"></a>00606         }
<a name="l00607"></a>00607 
<a name="l00608"></a>00608     <span class="keyword">private</span>:
<a name="l00609"></a>00609 
<a name="l00610"></a>00610         <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp;          m_executionContext;
<a name="l00611"></a>00611         <span class="keyword">const</span> PrefixResolver* <span class="keyword">const</span>     m_savedResolver;
<a name="l00612"></a>00612     };
<a name="l00613"></a>00613 <span class="comment"></span>
<a name="l00614"></a>00614 <span class="comment">    /**</span>
<a name="l00615"></a>00615 <span class="comment">     * Retrieve the URI corresponding to a namespace prefix</span>
<a name="l00616"></a>00616 <span class="comment">     * </span>
<a name="l00617"></a>00617 <span class="comment">     * @param prefix prefix for a namespace</span>
<a name="l00618"></a>00618 <span class="comment">     * @return URI corresponding to namespace</span>
<a name="l00619"></a>00619 <span class="comment">     */</span>
<a name="l00620"></a>00620     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>*
<a name="l00621"></a>00621     getNamespaceForPrefix(<span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;     prefix) <span class="keyword">const</span> = 0;
<a name="l00622"></a>00622 <span class="comment"></span>
<a name="l00623"></a>00623 <span class="comment">    /**</span>
<a name="l00624"></a>00624 <span class="comment">     * Given a DOM Document, tell what URI was used to parse it. Needed for</span>
<a name="l00625"></a>00625 <span class="comment">     * relative resolution.</span>
<a name="l00626"></a>00626 <span class="comment">     *</span>
<a name="l00627"></a>00627 <span class="comment">     * @param owner source document</span>
<a name="l00628"></a>00628 <span class="comment">     * @return document URI</span>
<a name="l00629"></a>00629 <span class="comment">     */</span>
<a name="l00630"></a>00630     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00631"></a>00631     findURIFromDoc(<span class="keyword">const</span> XalanDocument*     owner) <span class="keyword">const</span> = 0;
<a name="l00632"></a>00632 <span class="comment"></span>
<a name="l00633"></a>00633 <span class="comment">    /**</span>
<a name="l00634"></a>00634 <span class="comment">     * The getUnparsedEntityURI function returns the URI of the unparsed</span>
<a name="l00635"></a>00635 <span class="comment">     * entity with the specified name in the same document as the context</span>
<a name="l00636"></a>00636 <span class="comment">     * node (see [3.3 Unparsed Entities]). It returns the empty string if</span>
<a name="l00637"></a>00637 <span class="comment">     * there is no such entity.</span>
<a name="l00638"></a>00638 <span class="comment">     *</span>
<a name="l00639"></a>00639 <span class="comment">     * @param theName     name of entity</span>
<a name="l00640"></a>00640 <span class="comment">     * @param theDocument document containing entity</span>
<a name="l00641"></a>00641 <span class="comment">     * @return URI for the entity</span>
<a name="l00642"></a>00642 <span class="comment">     */</span>
<a name="l00643"></a>00643     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00644"></a>00644     getUnparsedEntityURI(
<a name="l00645"></a>00645             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   theName,
<a name="l00646"></a>00646             <span class="keyword">const</span> XalanDocument&amp;    theDocument) <span class="keyword">const</span> = 0;
<a name="l00647"></a>00647 <span class="comment"></span>
<a name="l00648"></a>00648 <span class="comment">    /**</span>
<a name="l00649"></a>00649 <span class="comment">     * Get the document associated with the given URI.</span>
<a name="l00650"></a>00650 <span class="comment">     *</span>
<a name="l00651"></a>00651 <span class="comment">     * @param theURI      document URI</span>
<a name="l00652"></a>00652 <span class="comment">     * @return a pointer to the document instance, if any.</span>
<a name="l00653"></a>00653 <span class="comment">     */</span>
<a name="l00654"></a>00654     <span class="keyword">virtual</span> XalanDocument*
<a name="l00655"></a>00655     getSourceDocument(<span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;     theURI) <span class="keyword">const</span> = 0;
<a name="l00656"></a>00656 <span class="comment"></span>
<a name="l00657"></a>00657 <span class="comment">    /**</span>
<a name="l00658"></a>00658 <span class="comment">     * Associate a document with a given URI.</span>
<a name="l00659"></a>00659 <span class="comment">     *</span>
<a name="l00660"></a>00660 <span class="comment">     * @param theURI      document URI</span>
<a name="l00661"></a>00661 <span class="comment">     * @param theDocument source document</span>
<a name="l00662"></a>00662 <span class="comment">     */</span>
<a name="l00663"></a>00663     <span class="keyword">virtual</span> <span class="keywordtype">void</span>
<a name="l00664"></a>00664     setSourceDocument(
<a name="l00665"></a>00665             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   theURI,
<a name="l00666"></a>00666             XalanDocument*          theDocument) = 0;
<a name="l00667"></a>00667 <span class="comment"></span>
<a name="l00668"></a>00668 <span class="comment">    /**</span>
<a name="l00669"></a>00669 <span class="comment">     * Formats a number according to the specified pattern.</span>
<a name="l00670"></a>00670 <span class="comment">     * </span>
<a name="l00671"></a>00671 <span class="comment">     * @param number the number to be formatted</span>
<a name="l00672"></a>00672 <span class="comment">     * @param pattern the format pattern</span>
<a name="l00673"></a>00673 <span class="comment">     * @param theResult the formatted number</span>
<a name="l00674"></a>00674 <span class="comment">     * @param context the source node</span>
<a name="l00675"></a>00675 <span class="comment">     * @param locator the locator </span>
<a name="l00676"></a>00676 <span class="comment">     */</span>
<a name="l00677"></a>00677     <span class="keyword">virtual</span> <span class="keywordtype">void</span> formatNumber(
<a name="l00678"></a>00678             <span class="keywordtype">double</span>                              number,
<a name="l00679"></a>00679             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;               pattern,
<a name="l00680"></a>00680             <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;                     <a class="code" href="XalanDOMString_8hpp.html#ad0987a2085caff760532b7f16b5c6f2e">theResult</a>,
<a name="l00681"></a>00681             <span class="keyword">const</span> XalanNode*                    context = 0,
<a name="l00682"></a>00682             <span class="keyword">const</span> Locator*                      locator = 0) = 0;
<a name="l00683"></a>00683 <span class="comment"></span>
<a name="l00684"></a>00684 <span class="comment">    /**</span>
<a name="l00685"></a>00685 <span class="comment">     * Formats a number according to the specified pattern.</span>
<a name="l00686"></a>00686 <span class="comment">     * </span>
<a name="l00687"></a>00687 <span class="comment">     * @param number the number to be formatted</span>
<a name="l00688"></a>00688 <span class="comment">     * @param pattern the format pattern</span>
<a name="l00689"></a>00689 <span class="comment">     * @param dfsName the name of decimal format to use </span>
<a name="l00690"></a>00690 <span class="comment">     * @param theResult the formatted number</span>
<a name="l00691"></a>00691 <span class="comment">     * @param context the source node</span>
<a name="l00692"></a>00692 <span class="comment">     * @param locator the locator </span>
<a name="l00693"></a>00693 <span class="comment">     * @return a pointer to the functor, 0 if none was found</span>
<a name="l00694"></a>00694 <span class="comment">     */</span>
<a name="l00695"></a>00695     <span class="keyword">virtual</span> <span class="keywordtype">void</span> formatNumber(
<a name="l00696"></a>00696             <span class="keywordtype">double</span>                              number,
<a name="l00697"></a>00697             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;               pattern,
<a name="l00698"></a>00698             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;               dfsName,
<a name="l00699"></a>00699             <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;                     <a class="code" href="XalanDOMString_8hpp.html#ad0987a2085caff760532b7f16b5c6f2e">theResult</a>,
<a name="l00700"></a>00700             <span class="keyword">const</span> XalanNode*                    context = 0,
<a name="l00701"></a>00701             <span class="keyword">const</span> Locator*                      locator = 0) = 0;
<a name="l00702"></a>00702 
<a name="l00703"></a>00703     <span class="comment">// These interfaces are inherited from ExecutionContext...</span>
<a name="l00704"></a>00704 
<a name="l00705"></a>00705     <span class="keyword">virtual</span> <span class="keywordtype">void</span>
<a name="l00706"></a>00706     problem(
<a name="l00707"></a>00707             eSource                 source,
<a name="l00708"></a>00708             eClassification         classification,
<a name="l00709"></a>00709             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   msg,
<a name="l00710"></a>00710             <span class="keyword">const</span> Locator*          locator,
<a name="l00711"></a>00711             <span class="keyword">const</span> XalanNode*        sourceNode) = 0;
<a name="l00712"></a>00712 
<a name="l00713"></a>00713     <span class="keyword">virtual</span> <span class="keywordtype">void</span>
<a name="l00714"></a>00714     problem(
<a name="l00715"></a>00715             eSource                 source,
<a name="l00716"></a>00716             eClassification         classification,
<a name="l00717"></a>00717             <span class="keyword">const</span> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;   msg,
<a name="l00718"></a>00718             <span class="keyword">const</span> XalanNode*        sourceNode) = 0;
<a name="l00719"></a>00719 
<a name="l00720"></a>00720     <span class="keyword">virtual</span> <span class="keywordtype">bool</span>
<a name="l00721"></a>00721     shouldStripSourceNode(<span class="keyword">const</span> XalanText&amp;  node) = 0;
<a name="l00722"></a>00722 
<a name="l00723"></a>00723 <span class="keyword">protected</span>:
<a name="l00724"></a>00724 
<a name="l00725"></a><a class="code" href="classXPathExecutionContext.html#a9811448a7d41ad797e9d8f2c894a88c5">00725</a>     XObjectFactory*     m_xobjectFactory;
<a name="l00726"></a>00726 };
<a name="l00727"></a>00727 
<a name="l00728"></a>00728 
<a name="l00729"></a>00729 
<a name="l00730"></a>00730 XALAN_CPP_NAMESPACE_END
<a name="l00731"></a>00731 
<a name="l00732"></a>00732 
<a name="l00733"></a>00733 
<a name="l00734"></a>00734 <span class="preprocessor">#endif  // XPATHEXECUTIONCONTEXT_HEADER_GUARD_1357924680</span>
</pre></div></div>
</div>
<p align="center"><a href="graph_legend.html">Interpreting class diagrams</a></p>
<p><font color="#000000" face="arial,helvetica,sanserif" size="-1">
<i><a href="http://www.doxygen.org/">Doxygen</a> and 
<a href="http://www.graphviz.org/">GraphViz</a> are 
used to generate this API documentation from the Xalan-C header files.</i></font></p>

<table border="0" cellpadding="0" cellspacing="0" width="80%">
 <tr>
  <td width="80%" valign="top">
	<p align="center"><b>Xalan-C++ XSLT Processor Version 1.11</b><br/>
	Copyright &copy; 1999-2012 The Apache Software Foundation.<br/>
	All Rights Reserved.</p>
  </td>
 </tr>
 <tr>
  <td width="100%">
	<p align="center"><img src="asf_logo_wide.gif" width="268" height="25" align="bottom" border="0" alt="Apache Logo">
  </td>
 </tr>
</table>
</body>
</html>
