blob: 2ed1f143dc31b856701e65a18244d50ead9f780b [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>MutableNodeRefList.hpp</h1><a href="MutableNodeRefList_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(MUTABLENODEREFLIST_HEADER_GUARD_1357924680)</font>
<a name="l00017"></a><a class="code" href="MutableNodeRefList_8hpp.html#a0">00017</a> <font class="preprocessor"></font><font class="preprocessor">#define MUTABLENODEREFLIST_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;<a class="code" href="NodeRefList_8hpp.html">xalanc/XPath/NodeRefList.hpp</a>&gt;</font>
00027
00028
00029
00030 XALAN_CPP_NAMESPACE_BEGIN
00031
00032
00033
<a name="l00034"></a><a class="code" href="MutableNodeRefList_8hpp.html#a1">00034</a> <font class="keyword">class </font><a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>;
00035 <font class="keyword">class </font><a class="code" href="classXalanDocument.html">XalanDocument</a>;
00036 <font class="keyword">class </font><a class="code" href="classXalanNodeList.html">XalanNodeList</a>;
00037
00038
00039
<a name="l00044"></a><a class="code" href="classMutableNodeRefList.html">00044</a> <font class="keyword">class </font>XALAN_XPATH_EXPORT <a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a> : <font class="keyword">public</font> <a class="code" href="classNodeRefList.html">NodeRefList</a>
00045 {
00046 <font class="keyword">public</font>:
00047
00051 <font class="keyword">explicit</font>
00052 <a class="code" href="NodeSorter_8hpp.html#a1">MutableNodeRefList</a>(MemoryManagerType&amp; theManager);
00053
00054 <font class="keyword">static</font> <a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a>*
00055 <a class="code" href="classMutableNodeRefList.html#d0">create</a>(MemoryManagerType&amp; theManager);
00061 <a class="code" href="NodeSorter_8hpp.html#a1">MutableNodeRefList</a>(<font class="keyword">const</font> <a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a>&amp; theSource,
00062 MemoryManagerType&amp; theManager);
00063
00069 <font class="keyword">explicit</font>
00070 <a class="code" href="NodeSorter_8hpp.html#a1">MutableNodeRefList</a>(<font class="keyword">const</font> <a class="code" href="classNodeRefListBase.html">NodeRefListBase</a>&amp; theSource,
00071 MemoryManagerType&amp; theManager);
00072
00073 <font class="keyword">virtual</font>
00074 <a class="code" href="classMutableNodeRefList.html#a3">~MutableNodeRefList</a>();
00075
00076 <a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a>&amp;
00077 <a class="code" href="classNodeRefList.html#a5">operator=</a>(<font class="keyword">const</font> <a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a>&amp; theRHS);
00078
00079 <a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a>&amp;
00080 <a class="code" href="classNodeRefList.html#a5">operator=</a>(<font class="keyword">const</font> <a class="code" href="classNodeRefList.html">NodeRefList</a>&amp; theRHS);
00081
00082 <a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a>&amp;
00083 <a class="code" href="classNodeRefList.html#a5">operator=</a>(<font class="keyword">const</font> <a class="code" href="classNodeRefListBase.html">NodeRefListBase</a>&amp; theRHS);
00084
00085 <a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a>&amp;
00086 <a class="code" href="classNodeRefList.html#a5">operator=</a>(<font class="keyword">const</font> <a class="code" href="classXalanNodeList.html">XalanNodeList</a>* theRHS);
00087
00093 <font class="keywordtype">void</font>
00094 <a class="code" href="classMutableNodeRefList.html#a8">addNode</a>(<a class="code" href="classXalanNode.html">XalanNode</a>* n);
00095
00102 <font class="keywordtype">void</font>
00103 <a class="code" href="classMutableNodeRefList.html#a9">insertNode</a>(
00104 <a class="code" href="classXalanNode.html">XalanNode</a>* n,
00105 size_type pos);
00106
00112 <font class="keywordtype">void</font>
00113 <a class="code" href="classMutableNodeRefList.html#a10">removeNode</a>(<font class="keyword">const</font> <a class="code" href="classXalanNode.html">XalanNode</a>* n);
00114
00120 <font class="keywordtype">void</font>
00121 <a class="code" href="classMutableNodeRefList.html#a10">removeNode</a>(size_type pos);
00122
00126 <font class="keywordtype">void</font>
00127 <a class="code" href="DOMStringHelper_8hpp.html#a80">clear</a>();
00128
00135 <font class="keywordtype">void</font>
00136 <a class="code" href="classMutableNodeRefList.html#a13">setNode</a>(
00137 size_type pos,
00138 <a class="code" href="classXalanNode.html">XalanNode</a>* n = 0);
00139
00146 <font class="keywordtype">void</font>
00147 <a class="code" href="classMutableNodeRefList.html#a14">addNodes</a>(<font class="keyword">const</font> <a class="code" href="classXalanNodeList.html">XalanNodeList</a>&amp; nodelist);
00148
00155 <font class="keywordtype">void</font>
00156 <a class="code" href="classMutableNodeRefList.html#a14">addNodes</a>(<font class="keyword">const</font> <a class="code" href="classNodeRefListBase.html">NodeRefListBase</a>&amp; nodelist);
00157
00164 <font class="keywordtype">void</font>
00165 <a class="code" href="classMutableNodeRefList.html#a16">addNodesInDocOrder</a>(
00166 <font class="keyword">const</font> <a class="code" href="classXalanNodeList.html">XalanNodeList</a>&amp; nodelist,
00167 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp; executionContext);
00168
00175 <font class="keywordtype">void</font>
00176 <a class="code" href="classMutableNodeRefList.html#a16">addNodesInDocOrder</a>(
00177 <font class="keyword">const</font> <a class="code" href="classNodeRefListBase.html">NodeRefListBase</a>&amp; nodelist,
00178 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp; executionContext);
00179
00186 <font class="keywordtype">void</font>
00187 <a class="code" href="classMutableNodeRefList.html#a16">addNodesInDocOrder</a>(
00188 <font class="keyword">const</font> <a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a>&amp; nodelist,
00189 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp; executionContext);
00190
00197 <font class="keywordtype">void</font>
00198 <a class="code" href="classMutableNodeRefList.html#a19">addNodeInDocOrder</a>(
00199 <a class="code" href="classXalanNode.html">XalanNode</a>* node,
00200 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp; executionContext);
00201
00205 <font class="keywordtype">void</font>
00206 <a class="code" href="classMutableNodeRefList.html#a20">clearNulls</a>();
00207
00211 <font class="keywordtype">void</font>
00212 <a class="code" href="classMutableNodeRefList.html#a21">reverse</a>();
00213
00228 <font class="keywordtype">void</font>
<a name="l00229"></a><a class="code" href="classMutableNodeRefList.html#a22">00229</a> <a class="code" href="DOMStringHelper_8hpp.html#a11">reserve</a>(size_type theCount)<font class="keyword"></font>
00230 <font class="keyword"> </font>{
00231 m_nodeList.reserve(theCount);
00232 }
00233
00237 <font class="keywordtype">bool</font>
<a name="l00238"></a><a class="code" href="classMutableNodeRefList.html#a23">00238</a> <a class="code" href="classMutableNodeRefList.html#a23">getUnknownOrder</a>()<font class="keyword"> const</font>
00239 <font class="keyword"> </font>{
00240 <font class="keywordflow">return</font> m_order == eUnknownOrder ? <font class="keyword">true</font> : <font class="keyword">false</font>;
00241 }
00242
00243 <font class="keywordtype">void</font>
<a name="l00244"></a><a class="code" href="classMutableNodeRefList.html#a24">00244</a> <a class="code" href="classMutableNodeRefList.html#a24">setUnknownOrder</a>()<font class="keyword"></font>
00245 <font class="keyword"> </font>{
00246 m_order = eUnknownOrder;
00247 }
00248
00252 <font class="keywordtype">bool</font>
<a name="l00253"></a><a class="code" href="classMutableNodeRefList.html#a25">00253</a> <a class="code" href="classMutableNodeRefList.html#a25">getDocumentOrder</a>()<font class="keyword"> const</font>
00254 <font class="keyword"> </font>{
00255 <font class="keywordflow">return</font> m_order == eDocumentOrder ? <font class="keyword">true</font> : <font class="keyword">false</font>;
00256 }
00257
00263 <font class="keywordtype">void</font>
<a name="l00264"></a><a class="code" href="classMutableNodeRefList.html#a26">00264</a> <a class="code" href="classMutableNodeRefList.html#a26">setDocumentOrder</a>()<font class="keyword"></font>
00265 <font class="keyword"> </font>{
00266 m_order = eDocumentOrder;
00267 }
00268
00272 <font class="keywordtype">bool</font>
<a name="l00273"></a><a class="code" href="classMutableNodeRefList.html#a27">00273</a> <a class="code" href="classMutableNodeRefList.html#a27">getReverseDocumentOrder</a>()<font class="keyword"> const</font>
00274 <font class="keyword"> </font>{
00275 <font class="keywordflow">return</font> m_order == eReverseDocumentOrder ? <font class="keyword">true</font> : <font class="keyword">false</font>;
00276 }
00277
00283 <font class="keywordtype">void</font>
<a name="l00284"></a><a class="code" href="classMutableNodeRefList.html#a28">00284</a> <a class="code" href="classMutableNodeRefList.html#a28">setReverseDocumentOrder</a>()<font class="keyword"></font>
00285 <font class="keyword"> </font>{
00286 m_order = eReverseDocumentOrder;
00287 }
00288
<a name="l00289"></a><a class="code" href="classMutableNodeRefList.html#s0">00289</a> <font class="keyword">typedef</font> NodeListVectorType::iterator NodeListIteratorType;
00290
<a name="l00291"></a><a class="code" href="classMutableNodeRefList_1_1addNodeInDocOrderFunctor.html">00291</a> <font class="keyword">class </font>addNodeInDocOrderFunctor
00292 {
00293 <font class="keyword">public</font>:
00294
<a name="l00295"></a><a class="code" href="classMutableNodeRefList_1_1addNodeInDocOrderFunctor.html#a0">00295</a> <a class="code" href="classMutableNodeRefList_1_1addNodeInDocOrderFunctor.html#a0">addNodeInDocOrderFunctor</a>(
00296 <a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a>&amp; theList,
00297 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp; theExecutionContext) :
00298 m_list(theList),
00299 m_executionContext(theExecutionContext)
00300 {
00301 }
00302
00303 <font class="keywordtype">void</font>
<a name="l00304"></a><a class="code" href="classMutableNodeRefList_1_1addNodeInDocOrderFunctor.html#a1">00304</a> <a class="code" href="classMutableNodeRefList_1_1addNodeInDocOrderFunctor.html#a1">operator()</a>(<a class="code" href="classXalanNode.html">XalanNode</a>* theNode)<font class="keyword"> const</font>
00305 <font class="keyword"> </font>{
00306 m_list.<a class="code" href="classMutableNodeRefList.html#a19">addNodeInDocOrder</a>(theNode, m_executionContext);
00307 }
00308
00309 <font class="keyword">private</font>:
00310
00311 <a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a>&amp; m_list;
00312
00313 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp; m_executionContext;
00314 };
00315
00316 <font class="keywordtype">void</font>
<a name="l00317"></a><a class="code" href="classMutableNodeRefList.html#a29">00317</a> <a class="code" href="classNodeRefList.html#a12">swap</a>(<a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a>&amp; theOther)<font class="keyword"></font>
00318 <font class="keyword"> </font>{
00319 <a class="code" href="classNodeRefList.html#a12">NodeRefList::swap</a>(theOther);
00320
00321 <font class="keyword">const</font> eOrder temp = m_order;
00322
00323 m_order = theOther.m_order;
00324
00325 theOther.m_order = temp;
00326 }
00327
00328 <font class="keyword">private</font>:
00329 <font class="comment">//not defined</font>
00330 <a class="code" href="NodeSorter_8hpp.html#a1">MutableNodeRefList</a>(<font class="keyword">const</font> <a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a>&amp; theSource);
00331
00332 <font class="comment">// An enum to determine what the order of the nodes is...</font>
00333 <font class="keyword">enum</font> eOrder { eUnknownOrder, eDocumentOrder, eReverseDocumentOrder };
00334
00335 eOrder m_order;
00336 };
00337
00338 <a class="code" href="XalanMemoryManagement_8hpp.html#a4">XALAN_USES_MEMORY_MANAGER</a>(<a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a>)
00339
00340 XALAN_CPP_NAMESPACE_END
00341
00342
00343
00344 <font class="preprocessor">#endif // MUTABLENODEREFLIST_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>