blob: 7ac8e29c3bcbd03dfe135b2d2b0d01a9cb504084 [file] [log] [blame]
<HTML><HEAD><TITLE>Xalan-C++ API Documentation</TITLE></HEAD>
<BODY>
<h2 align="center">Xalan-C++ API Documentation</h2>
<h3 align="center">The Xalan C++ XSLT Processor Version 1.10</h3>
</BODY>
<!-- Generated by Doxygen 1.2.8.1 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>XPathExecutionContext.hpp</h1><a href="XPathExecutionContext_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <font class="comment">/*</font>
00002 <font class="comment"> * Copyright 1999-2004 The Apache Software Foundation.</font>
00003 <font class="comment"> *</font>
00004 <font class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</font>
00005 <font class="comment"> * you may not use this file except in compliance with the License.</font>
00006 <font class="comment"> * You may obtain a copy of the License at</font>
00007 <font class="comment"> *</font>
00008 <font class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</font>
00009 <font class="comment"> *</font>
00010 <font class="comment"> * Unless required by applicable law or agreed to in writing, software</font>
00011 <font class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</font>
00012 <font class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</font>
00013 <font class="comment"> * See the License for the specific language governing permissions and</font>
00014 <font class="comment"> * limitations under the License.</font>
00015 <font class="comment"> */</font>
00016 <font class="preprocessor">#if !defined(XPATHEXECUTIONCONTEXT_HEADER_GUARD_1357924680)</font>
<a name="l00017"></a><a class="code" href="XPathExecutionContext_8hpp.html#a0">00017</a> <font class="preprocessor"></font><font class="preprocessor">#define XPATHEXECUTIONCONTEXT_HEADER_GUARD_1357924680</font>
00018 <font class="preprocessor"></font>
00019
00020
00021 <font class="comment">// Base include file. Must be first.</font>
00022 <font class="preprocessor">#include &lt;<a class="code" href="XPathDefinitions_8hpp.html">xalanc/XPath/XPathDefinitions.hpp</a>&gt;</font>
00023
00024
00025
00026 <font class="preprocessor">#include &lt;cassert&gt;</font>
00027
00028
00029
00030 <font class="preprocessor">#include &lt;<a class="code" href="XalanVector_8hpp.html">xalanc/Include/XalanVector.hpp</a>&gt;</font>
00031
00032
00033
00034 <font class="preprocessor">#include &lt;<a class="code" href="XalanDOMString_8hpp.html">xalanc/XalanDOM/XalanDOMString.hpp</a>&gt;</font>
00035
00036
00037
00041 <font class="comment">// Base class header file...</font>
00042 <font class="preprocessor">#include &lt;<a class="code" href="ExecutionContext_8hpp.html">xalanc/PlatformSupport/ExecutionContext.hpp</a>&gt;</font>
00043
00044
00045
00046 <font class="preprocessor">#include &lt;<a class="code" href="MutableNodeRefList_8hpp.html">xalanc/XPath/MutableNodeRefList.hpp</a>&gt;</font>
00047
00048
00049
00050 XALAN_CPP_NAMESPACE_BEGIN
00051
00052
00053
<a name="l00054"></a><a class="code" href="XPathExecutionContext_8hpp.html#a1">00054</a> <font class="keyword">class </font><a class="code" href="classXalanDecimalFormatSymbols.html">XalanDecimalFormatSymbols</a>;
00055 <font class="keyword">class </font><a class="code" href="classPrefixResolver.html">PrefixResolver</a>;
00056 <font class="keyword">class </font><a class="code" href="classXalanQName.html">XalanQName</a>;
00057 <font class="keyword">class </font><a class="code" href="classXObject.html">XObject</a>;
00058 <font class="keyword">class </font><a class="code" href="classXObjectPtr.html">XObjectPtr</a>;
00059 <font class="keyword">class </font><a class="code" href="classXObjectFactory.html">XObjectFactory</a>;
00060 <font class="keyword">class </font><a class="code" href="classXalanDocument.html">XalanDocument</a>;
00061 <font class="keyword">class </font><a class="code" href="classXalanElement.html">XalanElement</a>;
00062 <font class="keyword">class </font><a class="code" href="classXalanNode.html">XalanNode</a>;
00063 <font class="keyword">class </font><a class="code" href="classXalanText.html">XalanText</a>;
00064
00065
00066
00067 <font class="comment">//</font>
00068 <font class="comment">// An abstract class which provides support for executing XPath functions</font>
00069 <font class="comment">// and extension functions.</font>
00070 <font class="comment">//</font>
00071
<a name="l00072"></a><a class="code" href="classXPathExecutionContext.html">00072</a> <font class="keyword">class </font>XALAN_XPATH_EXPORT <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a> : <font class="keyword">public</font> <a class="code" href="classExecutionContext.html">ExecutionContext</a>
00073 {
00074 <font class="keyword">public</font>:
00075
<a name="l00076"></a><a class="code" href="classXPathExecutionContext.html#s0">00076</a> <font class="keyword">typedef</font> XalanVector&lt;XObjectPtr&gt; XObjectArgVectorType;
00077
<a name="l00078"></a><a class="code" href="classXPathExecutionContext.html#s1">00078</a> <font class="keyword">typedef</font> NodeRefListBase::size_type size_type;
00079
00080 <font class="keyword">explicit</font>
00081 <a class="code" href="MutableNodeRefList_8hpp.html#a1">XPathExecutionContext</a>(MemoryManagerType&amp; m_memoryManager, <a class="code" href="classXObjectFactory.html">XObjectFactory</a>* theXObjectFactory = 0);
00082
00083 <font class="keyword">virtual</font>
00084 <a class="code" href="classXPathExecutionContext.html#a1">~XPathExecutionContext</a>();
00085
00090 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00091 <a class="code" href="classXPathExecutionContext.html#a2">reset</a>() = 0;
00092
00098 <font class="keyword">virtual</font> <a class="code" href="classXalanNode.html">XalanNode</a>*
00099 <a class="code" href="classXPathExecutionContext.html#a3">getCurrentNode</a>() <font class="keyword">const</font> = 0;
00100
00106 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00107 <a class="code" href="classXPathExecutionContext.html#a4">pushCurrentNode</a>(<a class="code" href="classXalanNode.html">XalanNode</a>* theCurrentNode) = 0;
00108
00112 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00113 <a class="code" href="classXPathExecutionContext.html#a5">popCurrentNode</a>() = 0;
00114
<a name="l00115"></a><a class="code" href="classXPathExecutionContext_1_1CurrentNodePushAndPop.html">00115</a> <font class="keyword">class </font><a class="code" href="classXPathExecutionContext_1_1CurrentNodePushAndPop.html">CurrentNodePushAndPop</a>
00116 {
00117 <font class="keyword">public</font>:
00118
<a name="l00119"></a><a class="code" href="classXPathExecutionContext_1_1CurrentNodePushAndPop.html#a0">00119</a> <a class="code" href="classXPathExecutionContext_1_1CurrentNodePushAndPop.html#a0">CurrentNodePushAndPop</a>(
00120 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp; theExecutionContext,
00121 <a class="code" href="classXalanNode.html">XalanNode</a>* theNewNode) :
00122 m_executionContext(theExecutionContext)
00123 {
00124 theExecutionContext.<a class="code" href="classXPathExecutionContext.html#a4">pushCurrentNode</a>(theNewNode);
00125 }
00126
<a name="l00127"></a><a class="code" href="classXPathExecutionContext_1_1CurrentNodePushAndPop.html#a1">00127</a> <a class="code" href="classXPathExecutionContext_1_1CurrentNodePushAndPop.html#a1">~CurrentNodePushAndPop</a>()<font class="keyword"></font>
00128 <font class="keyword"> </font>{
00129 m_executionContext.<a class="code" href="classXPathExecutionContext.html#a5">popCurrentNode</a>();
00130 }
00131
00132 <font class="keyword">private</font>:
00133
00134 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp; m_executionContext;
00135 };
00136
00142 <a class="code" href="classXObjectFactory.html">XObjectFactory</a>&amp;
<a name="l00143"></a><a class="code" href="classXPathExecutionContext.html#a6">00143</a> <a class="code" href="classXPathExecutionContext.html#a6">getXObjectFactory</a>()<font class="keyword"> const</font>
00144 <font class="keyword"> </font>{
00145 assert(m_xobjectFactory != 0);
00146
00147 <font class="keywordflow">return</font> *m_xobjectFactory;
00148 }
00149
00157 <font class="keyword">virtual</font> <font class="keywordtype">bool</font>
00158 <a class="code" href="classXPathExecutionContext.html#a7">isNodeAfter</a>(
00159 <font class="keyword">const</font> <a class="code" href="classXalanNode.html">XalanNode</a>&amp; node1,
00160 <font class="keyword">const</font> <a class="code" href="classXalanNode.html">XalanNode</a>&amp; node2) <font class="keyword">const</font> = 0;
00161
00167 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00168 <a class="code" href="classXPathExecutionContext.html#a8">pushContextNodeList</a>(<font class="keyword">const</font> <a class="code" href="classNodeRefListBase.html">NodeRefListBase</a>&amp; theList) = 0;
00169
00173 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00174 <a class="code" href="classXPathExecutionContext.html#a9">popContextNodeList</a>() = 0;
00175
<a name="l00176"></a><a class="code" href="classXPathExecutionContext_1_1ContextNodeListPushAndPop.html">00176</a> <font class="keyword">class </font>ContextNodeListPushAndPop
00177 {
00178 <font class="keyword">public</font>:
00179
<a name="l00180"></a><a class="code" href="classXPathExecutionContext_1_1ContextNodeListPushAndPop.html#a0">00180</a> <a class="code" href="classXPathExecutionContext_1_1ContextNodeListPushAndPop.html#a0">ContextNodeListPushAndPop</a>(
00181 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp; theExecutionContext,
00182 <font class="keyword">const</font> <a class="code" href="classNodeRefListBase.html">NodeRefListBase</a>&amp; theNodeList) :
00183 m_executionContext(theExecutionContext)
00184 {
00185 m_executionContext.<a class="code" href="classXPathExecutionContext.html#a8">pushContextNodeList</a>(theNodeList);
00186 }
00187
<a name="l00188"></a><a class="code" href="classXPathExecutionContext_1_1ContextNodeListPushAndPop.html#a1">00188</a> <a class="code" href="classXPathExecutionContext_1_1ContextNodeListPushAndPop.html#a1">~ContextNodeListPushAndPop</a>()<font class="keyword"></font>
00189 <font class="keyword"> </font>{
00190 m_executionContext.<a class="code" href="classXPathExecutionContext.html#a9">popContextNodeList</a>();
00191 }
00192
00193 <font class="keyword">private</font>:
00194
00195 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp; m_executionContext;
00196 };
00197
00203 <font class="keyword">virtual</font> <font class="keyword">const</font> <a class="code" href="classNodeRefListBase.html">NodeRefListBase</a>&amp;
00204 <a class="code" href="classXPathExecutionContext.html#a10">getContextNodeList</a>() <font class="keyword">const</font> = 0;
00205
00206 <font class="comment">/*</font>
00207 <font class="comment"> * Get the count of nodes in the current context node list.</font>
00208 <font class="comment"> *</font>
00209 <font class="comment"> * @return length of list</font>
00210 <font class="comment"> */</font>
00211 <font class="keyword">virtual</font> size_type
00212 <a class="code" href="classXPathExecutionContext.html#a11">getContextNodeListLength</a>() <font class="keyword">const</font> = 0;
00213
00214 <font class="comment">/*</font>
00215 <font class="comment"> * Get the position of the node in the current context node list.</font>
00216 <font class="comment"> * Note that this is 1-based indexing (XPath/XSLT-style), not 0-based.</font>
00217 <font class="comment"> * Thus, 0 will be returned if the node was not found.</font>
00218 <font class="comment"> *</font>
00219 <font class="comment"> * @return position in list</font>
00220 <font class="comment"> */</font>
00221 <font class="keyword">virtual</font> size_type
00222 <a class="code" href="classXPathExecutionContext.html#a12">getContextNodeListPosition</a>(<font class="keyword">const</font> <a class="code" href="classXalanNode.html">XalanNode</a>&amp; contextNode) <font class="keyword">const</font> = 0;
00223
00231 <font class="keyword">virtual</font> <font class="keywordtype">bool</font>
00232 <a class="code" href="classXPathExecutionContext.html#a13">elementAvailable</a>(<font class="keyword">const</font> <a class="code" href="classXalanQName.html">XalanQName</a>&amp; theQName) <font class="keyword">const</font> = 0;
00233
00243 <font class="keyword">virtual</font> <font class="keywordtype">bool</font>
00244 <a class="code" href="classXPathExecutionContext.html#a13">elementAvailable</a>(
00245 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theName,
00246 <font class="keyword">const</font> LocatorType* locator) <font class="keyword">const</font> = 0;
00247
00255 <font class="keyword">virtual</font> <font class="keywordtype">bool</font>
00256 <a class="code" href="classXPathExecutionContext.html#a15">functionAvailable</a>(<font class="keyword">const</font> <a class="code" href="classXalanQName.html">XalanQName</a>&amp; theQName) <font class="keyword">const</font> = 0;
00257
00266 <font class="keyword">virtual</font> <font class="keywordtype">bool</font>
00267 <a class="code" href="classXPathExecutionContext.html#a15">functionAvailable</a>(
00268 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theName,
00269 <font class="keyword">const</font> LocatorType* locator) <font class="keyword">const</font> = 0;
00270
00281 <font class="keyword">virtual</font> <font class="keyword">const</font> <a class="code" href="classXObjectPtr.html">XObjectPtr</a>
00282 <a class="code" href="classXPathExecutionContext.html#a17">extFunction</a>(
00283 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theNamespace,
00284 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; functionName,
00285 <a class="code" href="classXalanNode.html">XalanNode</a>* context,
00286 <font class="keyword">const</font> XObjectArgVectorType&amp; argVec,
00287 <font class="keyword">const</font> LocatorType* locator) = 0;
00288
00296 <font class="keyword">virtual</font> <a class="code" href="classXalanDocument.html">XalanDocument</a>*
00297 <a class="code" href="classXPathExecutionContext.html#a18">parseXML</a>(
00298 MemoryManagerType&amp; theManager,
00299 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; urlString,
00300 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; base) <font class="keyword">const</font> = 0;
00301
00307 <font class="keyword">virtual</font> <a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a>*
00308 <a class="code" href="classXPathExecutionContext.html#a19">borrowMutableNodeRefList</a>() = 0;
00309
00316 <font class="keyword">virtual</font> <font class="keywordtype">bool</font>
00317 <a class="code" href="classXPathExecutionContext.html#a20">returnMutableNodeRefList</a>(<a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a>* theList) = 0;
00318
<a name="l00319"></a><a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html">00319</a> <font class="keyword">class </font><a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html">BorrowReturnMutableNodeRefList</a>
00320 {
00321 <font class="keyword">public</font>:
00322
<a name="l00323"></a><a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html#a0">00323</a> <a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html#a0">BorrowReturnMutableNodeRefList</a>(<a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp; executionContext) :
00324 m_xpathExecutionContext(&amp;executionContext),
00325 m_mutableNodeRefList(executionContext.borrowMutableNodeRefList())
00326 {
00327 assert(m_mutableNodeRefList != 0);
00328 }
00329
00330 <font class="comment">// N.B. Non-const copy constructor semantics (like std::auto_ptr)</font>
<a name="l00331"></a><a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html#a1">00331</a> <a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html#a0">BorrowReturnMutableNodeRefList</a>(<font class="keyword">const</font> <a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html">BorrowReturnMutableNodeRefList</a>&amp; theSource) :
00332 m_xpathExecutionContext(theSource.m_xpathExecutionContext),
00333 m_mutableNodeRefList(theSource.m_mutableNodeRefList)
00334 {
00335 assert(m_mutableNodeRefList != 0);
00336
00337 ((<a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html">BorrowReturnMutableNodeRefList</a>&amp;)theSource).m_mutableNodeRefList = 0;
00338 }
00339
<a name="l00340"></a><a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html#a2">00340</a> <a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html#a2">~BorrowReturnMutableNodeRefList</a>()<font class="keyword"></font>
00341 <font class="keyword"> </font>{
00342 <a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html#a6">release</a>();
00343 }
00344
00345 <a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a>&amp;
<a name="l00346"></a><a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html#a3">00346</a> <a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html#a3">operator*</a>()<font class="keyword"> const</font>
00347 <font class="keyword"> </font>{
00348 assert(m_mutableNodeRefList != 0);
00349
00350 <font class="keywordflow">return</font> *m_mutableNodeRefList;
00351 }
00352
00353 <a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a>*
<a name="l00354"></a><a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html#a4">00354</a> <a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html#a4">get</a>()<font class="keyword"> const</font>
00355 <font class="keyword"> </font>{
00356 <font class="keywordflow">return</font> m_mutableNodeRefList;
00357 }
00358
00359 <a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a>*
<a name="l00360"></a><a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html#a5">00360</a> <a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html#a5">operator-&gt;</a>()<font class="keyword"> const</font>
00361 <font class="keyword"> </font>{
00362 <font class="keywordflow">return</font> <a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html#a4">get</a>();
00363 }
00364
00365 <font class="keywordtype">void</font>
<a name="l00366"></a><a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html#a6">00366</a> <a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html#a6">release</a>()<font class="keyword"></font>
00367 <font class="keyword"> </font>{
00368 assert(m_xpathExecutionContext != 0);
00369
00370 <font class="keywordflow">if</font> (m_mutableNodeRefList != 0)
00371 {
00372 m_xpathExecutionContext-&gt;<a class="code" href="classXPathExecutionContext.html#a20">returnMutableNodeRefList</a>(m_mutableNodeRefList);
00373
00374 m_mutableNodeRefList = 0;
00375 }
00376 }
00377
00378 <a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html">BorrowReturnMutableNodeRefList</a>
<a name="l00379"></a><a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html#a7">00379</a> <a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html#a7">clone</a>()<font class="keyword"> const</font>
00380 <font class="keyword"> </font>{
00381 assert(m_xpathExecutionContext != 0);
00382
00383 <a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html">BorrowReturnMutableNodeRefList</a> theResult(*m_xpathExecutionContext);
00384
00385 *theResult = *m_mutableNodeRefList;
00386
00387 <font class="keywordflow">return</font> theResult;
00388 }
00389
00390 <font class="comment">// N.B. Non-const assignment operator semantics.</font>
00391 <a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html">BorrowReturnMutableNodeRefList</a>&amp;
<a name="l00392"></a><a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html#a8">00392</a> <a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html#a8">operator=</a>(<a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html">BorrowReturnMutableNodeRefList</a>&amp; theRHS)<font class="keyword"></font>
00393 <font class="keyword"> </font>{
00394 <a class="code" href="classXPathExecutionContext_1_1BorrowReturnMutableNodeRefList.html#a6">release</a>();
00395
00396 m_xpathExecutionContext = theRHS.m_xpathExecutionContext;
00397
00398 m_mutableNodeRefList = theRHS.m_mutableNodeRefList;
00399
00400 theRHS.m_mutableNodeRefList = 0;
00401
00402 <font class="keywordflow">return</font> *<font class="keyword">this</font>;
00403 }
00404
00405 <font class="keyword">private</font>:
00406
00407 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>* m_xpathExecutionContext;
00408
00409 <a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a>* m_mutableNodeRefList;
00410 };
00411
00417 <font class="keyword">virtual</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
00418 <a class="code" href="classXPathExecutionContext.html#a21">getCachedString</a>() = 0;
00419
00427 <font class="keyword">virtual</font> <font class="keywordtype">bool</font>
00428 <a class="code" href="classXPathExecutionContext.html#a22">releaseCachedString</a>(<a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theString) = 0;
00429
<a name="l00430"></a><a class="code" href="classXPathExecutionContext_1_1GetAndReleaseCachedString.html">00430</a> <font class="keyword">class </font><a class="code" href="classXPathExecutionContext_1_1GetAndReleaseCachedString.html">GetAndReleaseCachedString</a>
00431 {
00432 <font class="keyword">public</font>:
00433
<a name="l00434"></a><a class="code" href="classXPathExecutionContext_1_1GetAndReleaseCachedString.html#a0">00434</a> <a class="code" href="classXPathExecutionContext_1_1GetAndReleaseCachedString.html#a0">GetAndReleaseCachedString</a>(<a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp; theExecutionContext) :
00435 m_executionContext(&amp;theExecutionContext),
00436 m_string(&amp;theExecutionContext.getCachedString())
00437 {
00438 }
00439
00440 <font class="comment">// Note non-const copy semantics...</font>
<a name="l00441"></a><a class="code" href="classXPathExecutionContext_1_1GetAndReleaseCachedString.html#a1">00441</a> <a class="code" href="classXPathExecutionContext_1_1GetAndReleaseCachedString.html#a0">GetAndReleaseCachedString</a>(<a class="code" href="classXPathExecutionContext_1_1GetAndReleaseCachedString.html">GetAndReleaseCachedString</a>&amp; theSource) :
00442 m_executionContext(theSource.m_executionContext),
00443 m_string(theSource.m_string)
00444 {
00445 theSource.m_string = 0;
00446 }
00447
<a name="l00448"></a><a class="code" href="classXPathExecutionContext_1_1GetAndReleaseCachedString.html#a2">00448</a> <a class="code" href="classXPathExecutionContext_1_1GetAndReleaseCachedString.html#a2">~GetAndReleaseCachedString</a>()<font class="keyword"></font>
00449 <font class="keyword"> </font>{
00450 <font class="keywordflow">if</font> (m_string != 0)
00451 {
00452 m_executionContext-&gt;<a class="code" href="classXPathExecutionContext.html#a22">releaseCachedString</a>(*m_string);
00453 }
00454 }
00455
00456 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00457"></a><a class="code" href="classXPathExecutionContext_1_1GetAndReleaseCachedString.html#a3">00457</a> <a class="code" href="classXPathExecutionContext_1_1GetAndReleaseCachedString.html#a3">get</a>()<font class="keyword"> const</font>
00458 <font class="keyword"> </font>{
00459 assert(m_string != 0);
00460
00461 <font class="keywordflow">return</font> *m_string;
00462 }
00463
00464 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp;
<a name="l00465"></a><a class="code" href="classXPathExecutionContext_1_1GetAndReleaseCachedString.html#a4">00465</a> <a class="code" href="classXPathExecutionContext_1_1GetAndReleaseCachedString.html#a4">getExecutionContext</a>()<font class="keyword"> const</font>
00466 <font class="keyword"> </font>{
00467 <font class="keywordflow">return</font> *m_executionContext;
00468 }
00469
00470 <font class="keyword">private</font>:
00471
00472 <font class="comment">// Not implemented...</font>
00473 <a class="code" href="classXPathExecutionContext_1_1GetAndReleaseCachedString.html">GetAndReleaseCachedString</a>&amp;
00474 operator=(<font class="keyword">const</font> <a class="code" href="classXPathExecutionContext_1_1GetAndReleaseCachedString.html">GetAndReleaseCachedString</a>&amp;);
00475
00476
00477 <font class="comment">// Data members...</font>
00478 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>* m_executionContext;
00479
00480 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>* m_string;
00481 };
00482
<a name="l00483"></a><a class="code" href="classXPathExecutionContext.html#s2">00483</a> <font class="keyword">typedef</font> <a class="code" href="classXPathExecutionContext_1_1GetAndReleaseCachedString.html">GetAndReleaseCachedString</a> <a class="code" href="classXPathExecutionContext_1_1GetAndReleaseCachedString.html">GetCachedString</a>;
00484
00490 <font class="keyword">virtual</font> <a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a>*
00491 <a class="code" href="classXPathExecutionContext.html#a23">createMutableNodeRefList</a>(MemoryManagerType&amp; theManager) <font class="keyword">const</font> = 0;
00492
00503 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00504 <a class="code" href="classXPathExecutionContext.html#a24">getNodeSetByKey</a>(
00505 <a class="code" href="classXalanDocument.html">XalanDocument</a>* doc,
00506 <font class="keyword">const</font> <a class="code" href="classXalanQName.html">XalanQName</a>&amp; qname,
00507 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; ref,
00508 <a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a>&amp; nodelist) = 0;
00509
00522 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00523 <a class="code" href="classXPathExecutionContext.html#a24">getNodeSetByKey</a>(
00524 <a class="code" href="classXalanDocument.html">XalanDocument</a>* doc,
00525 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; name,
00526 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; ref,
00527 <font class="keyword">const</font> LocatorType* locator,
00528 <a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a>&amp; nodelist) = 0;
00529
00538 <font class="keyword">virtual</font> <font class="keyword">const</font> <a class="code" href="classXObjectPtr.html">XObjectPtr</a>
00539 <a class="code" href="classXPathExecutionContext.html#a26">getVariable</a>(
00540 <font class="keyword">const</font> <a class="code" href="classXalanQName.html">XalanQName</a>&amp; name,
00541 <font class="keyword">const</font> LocatorType* locator = 0) = 0;
00542
00548 <font class="keyword">virtual</font> <font class="keyword">const</font> <a class="code" href="classPrefixResolver.html">PrefixResolver</a>*
00549 <a class="code" href="classXPathExecutionContext.html#a27">getPrefixResolver</a>() <font class="keyword">const</font> = 0;
00550
00556 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00557 <a class="code" href="classXPathExecutionContext.html#a28">setPrefixResolver</a>(<font class="keyword">const</font> <a class="code" href="classPrefixResolver.html">PrefixResolver</a>* thePrefixResolver) = 0;
00558
<a name="l00559"></a><a class="code" href="classXPathExecutionContext_1_1PrefixResolverSetAndRestore.html">00559</a> <font class="keyword">class </font><a class="code" href="classXPathExecutionContext_1_1PrefixResolverSetAndRestore.html">PrefixResolverSetAndRestore</a>
00560 {
00561 <font class="keyword">public</font>:
00562
<a name="l00563"></a><a class="code" href="classXPathExecutionContext_1_1PrefixResolverSetAndRestore.html#a0">00563</a> <a class="code" href="classXPathExecutionContext_1_1PrefixResolverSetAndRestore.html#a0">PrefixResolverSetAndRestore</a>(
00564 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp; theExecutionContext,
00565 <font class="keyword">const</font> <a class="code" href="classPrefixResolver.html">PrefixResolver</a>* theResolver) :
00566 m_executionContext(theExecutionContext),
00567 m_savedResolver(theExecutionContext.getPrefixResolver())
00568 {
00569 m_executionContext.<a class="code" href="classXPathExecutionContext.html#a28">setPrefixResolver</a>(theResolver);
00570 }
00571
<a name="l00572"></a><a class="code" href="classXPathExecutionContext_1_1PrefixResolverSetAndRestore.html#a1">00572</a> <a class="code" href="classXPathExecutionContext_1_1PrefixResolverSetAndRestore.html#a0">PrefixResolverSetAndRestore</a>(
00573 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp; theExecutionContext,
00574 <font class="keyword">const</font> <a class="code" href="classPrefixResolver.html">PrefixResolver</a>* theOldResolver,
00575 <font class="keyword">const</font> <a class="code" href="classPrefixResolver.html">PrefixResolver</a>* theNewResolver) :
00576 m_executionContext(theExecutionContext),
00577 m_savedResolver(theOldResolver)
00578 {
00579 m_executionContext.<a class="code" href="classXPathExecutionContext.html#a28">setPrefixResolver</a>(theNewResolver);
00580 }
00581
<a name="l00582"></a><a class="code" href="classXPathExecutionContext_1_1PrefixResolverSetAndRestore.html#a2">00582</a> <a class="code" href="classXPathExecutionContext_1_1PrefixResolverSetAndRestore.html#a2">~PrefixResolverSetAndRestore</a>()<font class="keyword"></font>
00583 <font class="keyword"> </font>{
00584 m_executionContext.<a class="code" href="classXPathExecutionContext.html#a28">setPrefixResolver</a>(m_savedResolver);
00585 }
00586
00587 <font class="keyword">private</font>:
00588
00589 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp; m_executionContext;
00590 <font class="keyword">const</font> <a class="code" href="classPrefixResolver.html">PrefixResolver</a>* <font class="keyword">const</font> m_savedResolver;
00591 };
00592
00599 <font class="keyword">virtual</font> <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>*
00600 <a class="code" href="classXPathExecutionContext.html#a29">getNamespaceForPrefix</a>(<font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; prefix) <font class="keyword">const</font> = 0;
00601
00609 <font class="keyword">virtual</font> <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
00610 <a class="code" href="classXPathExecutionContext.html#a30">findURIFromDoc</a>(<font class="keyword">const</font> <a class="code" href="classXalanDocument.html">XalanDocument</a>* owner) <font class="keyword">const</font> = 0;
00611
00622 <font class="keyword">virtual</font> <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
00623 <a class="code" href="classXPathExecutionContext.html#a31">getUnparsedEntityURI</a>(
00624 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theName,
00625 <font class="keyword">const</font> <a class="code" href="classXalanDocument.html">XalanDocument</a>&amp; theDocument) <font class="keyword">const</font> = 0;
00626
00637 <font class="keyword">virtual</font> <font class="keywordtype">bool</font>
00638 <a class="code" href="classXPathExecutionContext.html#a32">shouldStripSourceNode</a>(<font class="keyword">const</font> <a class="code" href="classXalanText.html">XalanText</a>&amp; node) = 0;
00639
00646 <font class="keyword">virtual</font> <a class="code" href="classXalanDocument.html">XalanDocument</a>*
00647 <a class="code" href="classXPathExecutionContext.html#a33">getSourceDocument</a>(<font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theURI) <font class="keyword">const</font> = 0;
00648
00655 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00656 <a class="code" href="classXPathExecutionContext.html#a34">setSourceDocument</a>(
00657 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theURI,
00658 <a class="code" href="classXalanDocument.html">XalanDocument</a>* theDocument) = 0;
00659
00669 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classXPathExecutionContext.html#a35">formatNumber</a>(
00670 <font class="keywordtype">double</font> number,
00671 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; pattern,
00672 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theResult,
00673 <font class="keyword">const</font> <a class="code" href="classXalanNode.html">XalanNode</a>* context = 0,
00674 <font class="keyword">const</font> LocatorType* locator = 0) = 0;
00675
00687 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classXPathExecutionContext.html#a35">formatNumber</a>(
00688 <font class="keywordtype">double</font> number,
00689 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; pattern,
00690 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; dfsName,
00691 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theResult,
00692 <font class="keyword">const</font> <a class="code" href="classXalanNode.html">XalanNode</a>* context = 0,
00693 <font class="keyword">const</font> LocatorType* locator = 0) = 0;
00694
00695 <font class="comment">// These interfaces are inherited from ExecutionContext...</font>
00696
00697 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00698 <a class="code" href="classExecutionContext.html#a2">error</a>(
00699 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; msg,
00700 <font class="keyword">const</font> <a class="code" href="classXalanNode.html">XalanNode</a>* sourceNode = 0,
00701 <font class="keyword">const</font> LocatorType* locator = 0) <font class="keyword">const</font> = 0;
00702
00703 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00704 <a class="code" href="classExecutionContext.html#a3">warn</a>(
00705 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; msg,
00706 <font class="keyword">const</font> <a class="code" href="classXalanNode.html">XalanNode</a>* sourceNode = 0,
00707 <font class="keyword">const</font> LocatorType* locator = 0) <font class="keyword">const</font> = 0;
00708
00709 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00710 <a class="code" href="classExecutionContext.html#a4">message</a>(
00711 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; msg,
00712 <font class="keyword">const</font> <a class="code" href="classXalanNode.html">XalanNode</a>* sourceNode = 0,
00713 <font class="keyword">const</font> LocatorType* locator = 0) <font class="keyword">const</font> = 0;
00714
00715 <font class="keyword">protected</font>:
00716
<a name="l00717"></a><a class="code" href="classXPathExecutionContext.html#n0">00717</a> <a class="code" href="classXObjectFactory.html">XObjectFactory</a>* m_xobjectFactory;
00718 };
00719
00720
00721
00722 XALAN_CPP_NAMESPACE_END
00723
00724
00725
00726 <font class="preprocessor">#endif // XPATHEXECUTIONCONTEXT_HEADER_GUARD_1357924680</font>
</font></pre></div><p align="center"><a href="diagramnotes.html">Interpreting class diagrams</a></p>
<p><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">
<i><A href="http://www.stack.nl/~dimitri/doxygen/">Doxygen</A> and
<A href="http://www.research.att.com/sw/tools/graphviz/">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="820"><TR><TD bgcolor="#0086b2"><IMG height="1" src="../resources/dot.gif" width="1" alt="dot"></TD></TR></TABLE>
<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.10</B><BR>
Copyright &copy; 1999-2004 The Apache Software Foundation. All Rights Reserved.</i></p>
</TD>
</TR>
<TR>
<TD WIDTH="100%">
<P ALIGN="CENTER"><IMG SRC="ApacheLogo.jpg" WIDTH="387" HEIGHT="100" ALIGN="BOTTOM" BORDER="0" ALT="Apache Logo">
</TD>
</TR>
</TABLE>