blob: c955acf46af86ee0cbf8f0882c186d02d882af12 [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>XObject.hpp</h1><a href="XObject_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(XOBJECT_HEADER_GUARD_1357924680)</font>
<a name="l00017"></a><a class="code" href="XObject_8hpp.html#a0">00017</a> <font class="preprocessor"></font><font class="preprocessor">#define XOBJECT_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="XalanDOMString_8hpp.html">xalanc/XalanDOM/XalanDOMString.hpp</a>&gt;</font>
00027
00028
00029
00030 <font class="preprocessor">#include &lt;<a class="code" href="DoubleSupport_8hpp.html">xalanc/PlatformSupport/DoubleSupport.hpp</a>&gt;</font>
00031 <font class="preprocessor">#include &lt;<a class="code" href="FormatterListener_8hpp.html">xalanc/PlatformSupport/FormatterListener.hpp</a>&gt;</font>
00032 <font class="preprocessor">#include &lt;<a class="code" href="XalanReferenceCountedObject_8hpp.html">xalanc/PlatformSupport/XalanReferenceCountedObject.hpp</a>&gt;</font>
00033
00034
00035
00036 <font class="preprocessor">#include &lt;<a class="code" href="DOMServices_8hpp.html">xalanc/DOMSupport/DOMServices.hpp</a>&gt;</font>
00037
00038
00039
00040 <font class="preprocessor">#include &lt;<a class="code" href="NodeRefListBase_8hpp.html">xalanc/XPath/NodeRefListBase.hpp</a>&gt;</font>
00041 <font class="preprocessor">#include &lt;<a class="code" href="XalanXPathException_8hpp.html">xalanc/XPath/XalanXPathException.hpp</a>&gt;</font>
00042
00043
00044
00045 XALAN_CPP_NAMESPACE_BEGIN
00046
00047
00048
00049 <font class="keyword">class </font><a class="code" href="classMutableNodeRefList.html">MutableNodeRefList</a>;
00050 <font class="keyword">class </font><a class="code" href="classNodeRefListBase.html">NodeRefListBase</a>;
00051 <font class="keyword">class </font><a class="code" href="classXalanDocumentFragment.html">XalanDocumentFragment</a>;
00052 <font class="keyword">class </font><a class="code" href="classXObjectFactory.html">XObjectFactory</a>;
00053 <font class="keyword">class </font><a class="code" href="classXObjectTypeCallback.html">XObjectTypeCallback</a>;
00054 <font class="keyword">class </font><a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>;
00055
00056
00057
<a name="l00061"></a><a class="code" href="classXObject.html">00061</a> <font class="keyword">class </font>XALAN_XPATH_EXPORT <a class="code" href="classXObject.html">XObject</a> : <font class="keyword">protected</font> <a class="code" href="classXalanReferenceCountedObject.html">XalanReferenceCountedObject</a>
00062 {
00063 <font class="keyword">public</font>:
00064
<a name="l00065"></a><a class="code" href="classXObject.html#l0">00065</a> <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classXObjectPtr.html">XObjectPtr</a>;
00066
<a name="l00070"></a><a class="code" href="classXObject.html#s16">00070</a> <font class="keyword">enum</font> eObjectType { eTypeNull = 0,
00071 eTypeUnknown = 1,
00072 eTypeBoolean = 2,
00073 eTypeNumber = 3,
00074 eTypeString = 4,
00075 eTypeNodeSet = 5,
00076 eTypeResultTreeFrag = 6,
00077 eTypeUserDefined = 7,
00078 <font class="comment">// These next types are implementation-specific, and</font>
00079 <font class="comment">// are never returned by getType().</font>
00080 eTypeStringReference = 8,
00081 eTypeStringAdapter = 9,
00082 eTypeStringCached = 10,
00083 eTypeXTokenNumberAdapter = 11,
00084 eTypeXTokenStringAdapter = 12,
00085 eTypeNodeSetNodeProxy = 13,
00086 eUnknown
00087 };
00088
00092 <font class="keyword">static</font> <font class="keywordtype">void</font>
00093 <a class="code" href="classXObject.html#d0">initialize</a>(MemoryManagerType&amp; theManager);
00094
00098 <font class="keyword">static</font> <font class="keywordtype">void</font>
00099 <a class="code" href="classXObject.html#d1">terminate</a>();
00100
00106 <a class="code" href="FunctionKey_8hpp.html#a1">XObject</a>(eObjectType theObjectType);
00107
00108 <a class="code" href="FunctionKey_8hpp.html#a1">XObject</a>(<font class="keyword">const</font> <a class="code" href="classXObject.html">XObject</a>&amp; source);
00109
00110
00117 <font class="keyword">virtual</font> <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
00118 <a class="code" href="classXObject.html#a2">getTypeString</a>() <font class="keyword">const</font> = 0;
00119
00125 <font class="keyword">virtual</font> <font class="keywordtype">double</font>
00126 <a class="code" href="classXObject.html#a3">num</a>() <font class="keyword">const</font>;
00127
00133 <font class="keyword">virtual</font> <font class="keywordtype">bool</font>
00134 <a class="code" href="classXObject.html#a4">boolean</a>() <font class="keyword">const</font>;
00135
00141 <font class="keyword">virtual</font> <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
00142 <a class="code" href="classXObject.html#a5">str</a>() <font class="keyword">const</font>;
00143
00144 <font class="keyword">typedef</font> void (FormatterListener::*MemberFunctionPtr)(<font class="keyword">const</font> XMLCh* <font class="keyword">const</font>, <font class="keyword">const</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font>);
00145
00153 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00154 <a class="code" href="classXObject.html#a5">str</a>(
00155 <a class="code" href="classFormatterListener.html">FormatterListener</a>&amp; formatterListener,
00156 MemberFunctionPtr function) <font class="keyword">const</font> = 0;
00157
00163 <font class="keyword">virtual</font> <font class="keywordtype">double</font>
00164 <a class="code" href="classXObject.html#a7">stringLength</a>() <font class="keyword">const</font> = 0;
00165
00171 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00172 <a class="code" href="classXObject.html#a5">str</a>(<a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theBuffer) <font class="keyword">const</font>;
00173
00179 <font class="keyword">virtual</font> <font class="keyword">const</font> <a class="code" href="classXalanDocumentFragment.html">XalanDocumentFragment</a>&amp;
00180 <a class="code" href="classXObject.html#a9">rtree</a>() <font class="keyword">const</font>;
00181
00187 <font class="keyword">virtual</font> <font class="keyword">const</font> <a class="code" href="classNodeRefListBase.html">NodeRefListBase</a>&amp;
00188 <a class="code" href="classXObject.html#a10">nodeset</a>() <font class="keyword">const</font>;
00189
00195 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00196 <a class="code" href="classXObject.html#a11">ProcessXObjectTypeCallback</a>(<a class="code" href="classXObjectTypeCallback.html">XObjectTypeCallback</a>&amp; theCallbackObject) = 0;
00197
00203 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00204 <a class="code" href="classXObject.html#a11">ProcessXObjectTypeCallback</a>(<a class="code" href="classXObjectTypeCallback.html">XObjectTypeCallback</a>&amp; theCallbackObject) <font class="keyword">const</font> = 0;
00205
00213 <font class="keywordtype">bool</font>
00214 <a class="code" href="DOMStringHelper_8hpp.html#a64">equals</a>(
00215 <font class="keyword">const</font> <a class="code" href="classXObject.html">XObject</a>&amp; theRHS,
00216 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp; executionContext) <font class="keyword">const</font>;
00217
00225 <font class="keywordtype">bool</font>
00226 <a class="code" href="classXObject.html#a14">notEquals</a>(
00227 <font class="keyword">const</font> <a class="code" href="classXObject.html">XObject</a>&amp; theRHS,
00228 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp; executionContext) <font class="keyword">const</font>;
00229
00236 <font class="keywordtype">bool</font>
00237 <a class="code" href="classXObject.html#a15">lessThan</a>(
00238 <font class="keyword">const</font> <a class="code" href="classXObject.html">XObject</a>&amp; theRHS,
00239 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp; executionContext) <font class="keyword">const</font>;
00240
00248 <font class="keywordtype">bool</font>
00249 <a class="code" href="classXObject.html#a16">lessThanOrEquals</a>(
00250 <font class="keyword">const</font> <a class="code" href="classXObject.html">XObject</a>&amp; theRHS,
00251 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp; executionContext) <font class="keyword">const</font>;
00252
00259 <font class="keywordtype">bool</font>
00260 <a class="code" href="classXObject.html#a17">greaterThan</a>(
00261 <font class="keyword">const</font> <a class="code" href="classXObject.html">XObject</a>&amp; theRHS,
00262 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp; executionContext) <font class="keyword">const</font>;
00263
00271 <font class="keywordtype">bool</font>
00272 <a class="code" href="classXObject.html#a18">greaterThanOrEquals</a>(
00273 <font class="keyword">const</font> <a class="code" href="classXObject.html">XObject</a>&amp; theRHS,
00274 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp; executionContext) <font class="keyword">const</font>;
00275
00281 eObjectType
<a name="l00282"></a><a class="code" href="classXObject.html#a19">00282</a> <a class="code" href="classXObject.html#a19">getType</a>()<font class="keyword"> const</font>
00283 <font class="keyword"> </font>{
00284 <font class="keywordflow">return</font> m_objectType;
00285 }
00286
00292 <font class="keyword">static</font> <font class="keywordtype">bool</font>
<a name="l00293"></a><a class="code" href="classXObject.html#d2">00293</a> <a class="code" href="classXObject.html#a4">boolean</a>(<font class="keywordtype">double</font> theNumber)<font class="keyword"></font>
00294 <font class="keyword"> </font>{
00295 <font class="keywordflow">return</font> !DoubleSupport::isNaN(theNumber) &amp;&amp; !DoubleSupport::equal(theNumber, 0.0);
00296 }
00297
00303 <font class="keyword">static</font> <font class="keywordtype">bool</font>
<a name="l00304"></a><a class="code" href="classXObject.html#d3">00304</a> <a class="code" href="classXObject.html#a4">boolean</a>(<font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theString)<font class="keyword"></font>
00305 <font class="keyword"> </font>{
00306 <font class="keywordflow">return</font> theString.<a class="code" href="classXalanDOMString.html#a20">length</a>() == 0 ? <font class="keyword">false</font> : <font class="keyword">true</font>;
00307 }
00308
00314 <font class="keyword">static</font> <font class="keywordtype">bool</font>
<a name="l00315"></a><a class="code" href="classXObject.html#d4">00315</a> <a class="code" href="classXObject.html#a4">boolean</a>(<font class="keyword">const</font> <a class="code" href="classNodeRefListBase.html">NodeRefListBase</a>&amp; theNodeList)<font class="keyword"></font>
00316 <font class="keyword"> </font>{
00317 <font class="keywordflow">return</font> theNodeList.<a class="code" href="classNodeRefListBase.html#a3">getLength</a>() == 0 ? <font class="keyword">false</font> : <font class="keyword">true</font>;
00318 }
00319
00325 <font class="keyword">static</font> <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00326"></a><a class="code" href="classXObject.html#d5">00326</a> <a class="code" href="classXObject.html#d5">string</a>(<font class="keywordtype">bool</font> theBool)<font class="keyword"></font>
00327 <font class="keyword"> </font>{
00328 <font class="keywordflow">return</font> theBool == <font class="keyword">true</font> ? s_trueString : s_falseString;
00329 }
00330
00331 <font class="keyword">static</font> <font class="keywordtype">void</font>
<a name="l00332"></a><a class="code" href="classXObject.html#d6">00332</a> <a class="code" href="classXObject.html#d5">string</a>(
00333 <font class="keywordtype">bool</font> theBool,
00334 <a class="code" href="classFormatterListener.html">FormatterListener</a>&amp; formatterListener,
00335 MemberFunctionPtr function)<font class="keyword"></font>
00336 <font class="keyword"> </font>{
00337 <font class="keywordflow">if</font>(theBool == <font class="keyword">true</font>)
00338 {
00339 (formatterListener.*function)(s_trueString.<a class="code" href="classXalanDOMString.html#a33">c_str</a>(), s_trueString.<a class="code" href="classXalanDOMString.html#a20">length</a>());
00340 }
00341 <font class="keywordflow">else</font>
00342 {
00343 (formatterListener.*function)(s_falseString.<a class="code" href="classXalanDOMString.html#a33">c_str</a>(), s_falseString.<a class="code" href="classXalanDOMString.html#a20">length</a>());
00344 }
00345 }
00346
00352 <font class="keyword">static</font> <font class="keywordtype">void</font>
<a name="l00353"></a><a class="code" href="classXObject.html#d7">00353</a> <a class="code" href="classXObject.html#d5">string</a>(
00354 <font class="keywordtype">double</font> theNumber,
00355 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theString)<font class="keyword"></font>
00356 <font class="keyword"> </font>{
00357 DoubleToDOMString(theNumber, theString);
00358 }
00359
00360 <font class="keyword">static</font> <font class="keywordtype">void</font>
<a name="l00361"></a><a class="code" href="classXObject.html#d8">00361</a> <a class="code" href="classXObject.html#d5">string</a>(
00362 <font class="keywordtype">double</font> theNumber,
00363 <a class="code" href="classFormatterListener.html">FormatterListener</a>&amp; formatterListener,
00364 MemberFunctionPtr function)<font class="keyword"></font>
00365 <font class="keyword"> </font>{
00366 <a class="code" href="classDOMStringHelper.html#d0">DOMStringHelper::DoubleToCharacters</a>(theNumber, formatterListener, function);
00367 }
00368
00374 <font class="keyword">static</font> <font class="keywordtype">void</font>
<a name="l00375"></a><a class="code" href="classXObject.html#d9">00375</a> <a class="code" href="classXObject.html#d5">string</a>(
00376 <font class="keyword">const</font> <a class="code" href="classXalanNode.html">XalanNode</a>&amp; theNode,
00377 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theString)<font class="keyword"></font>
00378 <font class="keyword"> </font>{
00379 <a class="code" href="classDOMServices.html#d2">DOMServices::getNodeData</a>(theNode, theString);
00380 }
00381
00382 <font class="keyword">static</font> <font class="keywordtype">void</font>
<a name="l00383"></a><a class="code" href="classXObject.html#d10">00383</a> <a class="code" href="classXObject.html#d5">string</a>(
00384 <font class="keyword">const</font> <a class="code" href="classXalanNode.html">XalanNode</a>&amp; theNode,
00385 <a class="code" href="classFormatterListener.html">FormatterListener</a>&amp; formatterListener,
00386 MemberFunctionPtr function)<font class="keyword"></font>
00387 <font class="keyword"> </font>{
00388 <a class="code" href="classDOMServices.html#d2">DOMServices::getNodeData</a>(theNode, formatterListener, function);
00389 }
00390
00396 <font class="keyword">static</font> <font class="keywordtype">void</font>
<a name="l00397"></a><a class="code" href="classXObject.html#d11">00397</a> <a class="code" href="classXObject.html#d5">string</a>(
00398 <font class="keyword">const</font> <a class="code" href="classNodeRefListBase.html">NodeRefListBase</a>&amp; theNodeList,
00399 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theString)<font class="keyword"></font>
00400 <font class="keyword"> </font>{
00401 <font class="keywordflow">if</font> (theNodeList.<a class="code" href="classNodeRefListBase.html#a3">getLength</a>() &gt; 0)
00402 {
00403 assert(theNodeList.<a class="code" href="classNodeRefListBase.html#a2">item</a>(0) != 0);
00404
00405 <a class="code" href="classXObject.html#d5">string</a>(*theNodeList.<a class="code" href="classNodeRefListBase.html#a2">item</a>(0), theString);
00406 }
00407 }
00408
00409 <font class="keyword">static</font> <font class="keywordtype">void</font>
<a name="l00410"></a><a class="code" href="classXObject.html#d12">00410</a> <a class="code" href="classXObject.html#d5">string</a>(
00411 <font class="keyword">const</font> <a class="code" href="classNodeRefListBase.html">NodeRefListBase</a>&amp; theNodeList,
00412 <a class="code" href="classFormatterListener.html">FormatterListener</a>&amp; formatterListener,
00413 MemberFunctionPtr function)<font class="keyword"></font>
00414 <font class="keyword"> </font>{
00415 <font class="keywordflow">if</font> (theNodeList.<a class="code" href="classNodeRefListBase.html#a3">getLength</a>() &gt; 0)
00416 {
00417 assert(theNodeList.<a class="code" href="classNodeRefListBase.html#a2">item</a>(0) != 0);
00418
00419 <a class="code" href="classDOMServices.html#d2">DOMServices::getNodeData</a>(*theNodeList.<a class="code" href="classNodeRefListBase.html#a2">item</a>(0), formatterListener, function);
00420 }
00421 }
00422
00428 <font class="keyword">static</font> <font class="keywordtype">double</font>
<a name="l00429"></a><a class="code" href="classXObject.html#d13">00429</a> <a class="code" href="classXObject.html#d13">number</a>(<font class="keywordtype">bool</font> theBoolean)<font class="keyword"></font>
00430 <font class="keyword"> </font>{
00431 <font class="keywordflow">return</font> theBoolean == <font class="keyword">true</font> ? 1.0 : 0.0;
00432 }
00433
00434 <font class="keyword">static</font> <font class="keywordtype">double</font>
<a name="l00435"></a><a class="code" href="classXObject.html#d14">00435</a> <a class="code" href="classXObject.html#d13">number</a>(<font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theString,
00436 MemoryManagerType&amp; theManager)<font class="keyword"></font>
00437 <font class="keyword"> </font>{
00438 <font class="keywordflow">return</font> DoubleSupport::toDouble(theString, theManager);
00439 }
00440
00446 <font class="keyword">static</font> <font class="keywordtype">double</font>
00447 <a class="code" href="classXObject.html#d13">number</a>(
00448 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp; executionContext,
00449 <font class="keyword">const</font> <a class="code" href="classNodeRefListBase.html">NodeRefListBase</a>&amp; theNodeList);
00450
00456 <font class="keyword">static</font> <font class="keywordtype">double</font>
00457 <a class="code" href="classXObject.html#d13">number</a>(
00458 <a class="code" href="classXPathExecutionContext.html">XPathExecutionContext</a>&amp; executionContext,
00459 <font class="keyword">const</font> <a class="code" href="classXalanNode.html">XalanNode</a>&amp; theNode);
00460
00461
00462 <font class="comment">// All XObject instances are controlled by an instance of an XObjectFactory.</font>
<a name="l00463"></a><a class="code" href="classXObject.html#l1">00463</a> <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classXObjectFactory.html">XObjectFactory</a>;
00464
00465 <font class="keywordtype">void</font>
<a name="l00466"></a><a class="code" href="classXObject.html#a20">00466</a> <a class="code" href="classXObject.html#a20">setFactory</a>(<a class="code" href="classXObjectFactory.html">XObjectFactory</a>* theFactory)<font class="keyword"></font>
00467 <font class="keyword"> </font>{
00468 m_factory = theFactory;
00469 }
00470
00471 <font class="comment">// Base class for all XObject exceptions...</font>
<a name="l00472"></a><a class="code" href="classXObject_1_1XObjectException.html">00472</a> <font class="keyword">class </font>XObjectException : <font class="keyword">public</font> <a class="code" href="classXalanXPathException.html">XalanXPathException</a>
00473 {
00474 <font class="keyword">public</font>:
00475
00476 <font class="keyword">explicit</font>
00477 <a class="code" href="classXObject_1_1XObjectException.html#a0">XObjectException</a>(
00478 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; message = <a class="code" href="AVTPart_8hpp.html#a1">XalanDOMString</a>(XalanMemMgrs::getDummyMemMgr()),
00479 MemoryManagerType&amp; theManager = <a class="code" href="classXalanMemMgrs.html#d0">XalanMemMgrs::getDummyMemMgr</a>());
00480
00481 <a class="code" href="classXObject_1_1XObjectException.html#a0">XObjectException</a>( <font class="keyword">const</font> XObjectException&amp; other) ;
00482
00483 <font class="keyword">virtual</font>
00484 <a class="code" href="classXObject_1_1XObjectException.html#a2">~XObjectException</a>();
00485
00486 <font class="keyword">virtual</font> <font class="keyword">const</font> XalanDOMChar*
<a name="l00487"></a><a class="code" href="classXObject_1_1XObjectException.html#a3">00487</a> <a class="code" href="classXObject_1_1XObjectException.html#a3">getType</a>()<font class="keyword"> const</font>
00488 <font class="keyword"> </font>{
00489 <font class="keywordflow">return</font> m_type;
00490 }
00491 <font class="keyword">private</font>:
00492
00493 <font class="keyword">static</font> <font class="keyword">const</font> XalanDOMChar m_type[];
00494 };
00495
<a name="l00496"></a><a class="code" href="classXObject_1_1XObjectInvalidConversionException.html">00496</a> <font class="keyword">class </font>XObjectInvalidConversionException : <font class="keyword">public</font> XObjectException
00497 {
00498 <font class="keyword">public</font>:
00499
00500 <a class="code" href="classXObject_1_1XObjectInvalidConversionException.html#a0">XObjectInvalidConversionException</a>(
00501 eObjectType fromType,
00502 eObjectType toType);
00503
00504
00505 <a class="code" href="classXObject_1_1XObjectInvalidConversionException.html#a0">XObjectInvalidConversionException</a>( <font class="keyword">const</font> XObjectInvalidConversionException&amp; other);
00506
00507 <font class="keyword">virtual</font>
00508 <a class="code" href="classXObject_1_1XObjectInvalidConversionException.html#a2">~XObjectInvalidConversionException</a>();
00509
00510 <font class="keyword">virtual</font> <font class="keyword">const</font> XalanDOMChar*
<a name="l00511"></a><a class="code" href="classXObject_1_1XObjectInvalidConversionException.html#a3">00511</a> <a class="code" href="classXObject_1_1XObjectInvalidConversionException.html#a3">getType</a>()<font class="keyword"> const</font>
00512 <font class="keyword"> </font>{
00513 <font class="keywordflow">return</font> m_type;
00514 }
00515
00516
00517 <font class="keyword">private</font>:
00518
00519 <font class="keyword">static</font> <font class="keyword">const</font> XalanDOMChar m_type[];
00520
00521 <font class="keyword">static</font> <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
00522 formatErrorString(
00523 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; fromType,
00524 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; toType,
00525 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theResult);
00526
00527
00528 <font class="keyword">const</font> eObjectType m_from;
00529
00530 <font class="keyword">const</font> eObjectType m_to;
00531 };
00532
00533 <font class="keyword">protected</font>:
00534
00540 <font class="keyword">virtual</font> eObjectType
00541 <a class="code" href="classXObject.html#b0">getRealType</a>() <font class="keyword">const</font>;
00542
00543 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00544 <a class="code" href="classXalanReferenceCountedObject.html#b2">referenced</a>();
00545
00546 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00547 <a class="code" href="classXalanReferenceCountedObject.html#b3">dereferenced</a>();
00548
00549 <font class="keyword">virtual</font>
00550 <a class="code" href="classXObject.html#b3">~XObject</a>();
00551
<a name="l00552"></a><a class="code" href="classXObject.html#q0">00552</a> <font class="keyword">static</font> <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a> s_emptyString;
00553
<a name="l00554"></a><a class="code" href="classXObject.html#q1">00554</a> <font class="keyword">static</font> <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; s_booleanString;
00555
<a name="l00556"></a><a class="code" href="classXObject.html#q2">00556</a> <font class="keyword">static</font> <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; s_falseString;
00557
<a name="l00558"></a><a class="code" href="classXObject.html#q3">00558</a> <font class="keyword">static</font> <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; s_nodesetString;
00559
<a name="l00560"></a><a class="code" href="classXObject.html#q4">00560</a> <font class="keyword">static</font> <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; s_numberString;
00561
<a name="l00562"></a><a class="code" href="classXObject.html#q5">00562</a> <font class="keyword">static</font> <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; s_resultTreeFragmentString;
00563
<a name="l00564"></a><a class="code" href="classXObject.html#q6">00564</a> <font class="keyword">static</font> <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; s_stringString;
00565
<a name="l00566"></a><a class="code" href="classXObject.html#q7">00566</a> <font class="keyword">static</font> <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; s_trueString;
00567
00568 <font class="keyword">private</font>:
00569
00570 <font class="comment">// Not implemented...</font>
00571 <a class="code" href="classXObject.html">XObject</a>&amp;
00572 operator=(<font class="keyword">const</font> <a class="code" href="classXObject.html">XObject</a>&amp;);
00573
00574 <font class="keyword">const</font> eObjectType m_objectType;
00575
00576 <a class="code" href="classXObjectFactory.html">XObjectFactory</a>* m_factory;
00577 };
00578
00579
00580
<a name="l00584"></a><a class="code" href="classXObjectPtr.html">00584</a> <font class="keyword">class </font>XALAN_XPATH_EXPORT <a class="code" href="classXObjectPtr.html">XObjectPtr</a>
00585 {
00586 <font class="keyword">public</font>:
00587
00588 <font class="keyword">friend</font> <font class="keywordtype">bool</font> <a class="code" href="ElemAttributeSet_8hpp.html#a1">operator==</a>(<font class="keyword">const</font> <a class="code" href="classXObjectPtr.html">XObjectPtr</a>&amp;, <font class="keyword">const</font> <a class="code" href="classXObjectPtr.html">XObjectPtr</a>&amp;);
00589 <font class="keyword">friend</font> <font class="keywordtype">bool</font> <a class="code" href="ElemAttributeSet_8hpp.html#a2">operator&lt;</a>(<font class="keyword">const</font> <a class="code" href="classXObjectPtr.html">XObjectPtr</a>&amp;, <font class="keyword">const</font> <a class="code" href="classXObjectPtr.html">XObjectPtr</a>&amp;);
00590
00594 <font class="keyword">explicit</font>
<a name="l00595"></a><a class="code" href="classXObjectPtr.html#a0">00595</a> <a class="code" href="TopLevelArg_8hpp.html#a1">XObjectPtr</a>(<a class="code" href="classXObject.html">XObject</a>* theXObject = 0) :
00596 m_xobjectPtr(theXObject)
00597 {
00598 <a class="code" href="classXalanReferenceCountedObject.html#d0">XalanReferenceCountedObject::addReference</a>(theXObject);
00599 }
00600
<a name="l00601"></a><a class="code" href="classXObjectPtr.html#a1">00601</a> <a class="code" href="TopLevelArg_8hpp.html#a1">XObjectPtr</a>(<font class="keyword">const</font> <a class="code" href="classXObjectPtr.html">XObjectPtr</a>&amp; theSource) :
00602 m_xobjectPtr(theSource.m_xobjectPtr)
00603 {
00604 <a class="code" href="classXalanReferenceCountedObject.html#d0">XalanReferenceCountedObject::addReference</a>(m_xobjectPtr);
00605 };
00606
00607 <a class="code" href="classXObjectPtr.html">XObjectPtr</a>&amp;
<a name="l00608"></a><a class="code" href="classXObjectPtr.html#a2">00608</a> <a class="code" href="classXObjectPtr.html#a2">operator=</a>(<font class="keyword">const</font> <a class="code" href="classXObjectPtr.html">XObjectPtr</a>&amp; theRHS)<font class="keyword"></font>
00609 <font class="keyword"> </font>{
00610 <font class="keywordflow">if</font> (m_xobjectPtr != theRHS.m_xobjectPtr)
00611 {
00612 <a class="code" href="classXalanReferenceCountedObject.html#d1">XalanReferenceCountedObject::removeReference</a>(m_xobjectPtr);
00613
00614 m_xobjectPtr = theRHS.m_xobjectPtr;
00615
00616 <a class="code" href="classXalanReferenceCountedObject.html#d0">XalanReferenceCountedObject::addReference</a>(m_xobjectPtr);
00617 }
00618
00619 <font class="keywordflow">return</font> *<font class="keyword">this</font>;
00620 }
00621
<a name="l00622"></a><a class="code" href="classXObjectPtr.html#a3">00622</a> <a class="code" href="classXObjectPtr.html#a3">~XObjectPtr</a>()<font class="keyword"></font>
00623 <font class="keyword"> </font>{
00624 <a class="code" href="classXalanReferenceCountedObject.html#d1">XalanReferenceCountedObject::removeReference</a>(m_xobjectPtr);
00625 };
00626
00627 <font class="keywordtype">void</font>
<a name="l00628"></a><a class="code" href="classXObjectPtr.html#a4">00628</a> <a class="code" href="classXObjectPtr.html#a4">release</a>()<font class="keyword"></font>
00629 <font class="keyword"> </font>{
00630 <a class="code" href="classXObject.html">XObject</a>* <font class="keyword">const</font> xobjectPtr = m_xobjectPtr;
00631
00632 m_xobjectPtr = 0;
00633
00634 <a class="code" href="classXalanReferenceCountedObject.html#d1">XalanReferenceCountedObject::removeReference</a>(xobjectPtr);
00635 }
00636
00637 <font class="keywordtype">bool</font>
<a name="l00638"></a><a class="code" href="classXObjectPtr.html#a5">00638</a> <a class="code" href="classXObjectPtr.html#a5">null</a>()<font class="keyword"> const</font>
00639 <font class="keyword"> </font>{
00640 <font class="keywordflow">return</font> m_xobjectPtr == 0 ? <font class="keyword">true</font> : <font class="keyword">false</font>;
00641 }
00642
00643 <font class="keyword">const</font> <a class="code" href="classXObject.html">XObject</a>&amp;
<a name="l00644"></a><a class="code" href="classXObjectPtr.html#a6">00644</a> <a class="code" href="classXObjectPtr.html#a6">operator*</a>()<font class="keyword"> const</font>
00645 <font class="keyword"> </font>{
00646 <font class="keywordflow">return</font> *m_xobjectPtr;
00647 };
00648
00649 <a class="code" href="classXObject.html">XObject</a>&amp;
<a name="l00650"></a><a class="code" href="classXObjectPtr.html#a7">00650</a> <a class="code" href="classXObjectPtr.html#a6">operator*</a>()<font class="keyword"> </font>
00651 <font class="keyword"> </font>{
00652 <font class="keywordflow">return</font> *m_xobjectPtr;
00653 };
00654
00655 <font class="keyword">const</font> <a class="code" href="classXObject.html">XObject</a>*
<a name="l00656"></a><a class="code" href="classXObjectPtr.html#a8">00656</a> <a class="code" href="classXObjectPtr.html#a8">operator-&gt;</a>()<font class="keyword"> const</font>
00657 <font class="keyword"> </font>{
00658 <font class="keywordflow">return</font> m_xobjectPtr;
00659 };
00660
00661 <a class="code" href="classXObject.html">XObject</a>*
<a name="l00662"></a><a class="code" href="classXObjectPtr.html#a9">00662</a> <a class="code" href="classXObjectPtr.html#a8">operator-&gt;</a>()<font class="keyword"></font>
00663 <font class="keyword"> </font>{
00664 <font class="keywordflow">return</font> m_xobjectPtr;
00665 };
00666
00667 <font class="keyword">const</font> <a class="code" href="classXObject.html">XObject</a>*
<a name="l00668"></a><a class="code" href="classXObjectPtr.html#a10">00668</a> <a class="code" href="classXObjectPtr.html#a10">get</a>()<font class="keyword"> const</font>
00669 <font class="keyword"> </font>{
00670 <font class="keywordflow">return</font> m_xobjectPtr;
00671 };
00672
00673 <a class="code" href="classXObject.html">XObject</a>*
<a name="l00674"></a><a class="code" href="classXObjectPtr.html#a11">00674</a> <a class="code" href="classXObjectPtr.html#a10">get</a>()<font class="keyword"></font>
00675 <font class="keyword"> </font>{
00676 <font class="keywordflow">return</font> m_xobjectPtr;
00677 };
00678
00679 <font class="keyword">private</font>:
00680
00681 <a class="code" href="classXObject.html">XObject</a>* m_xobjectPtr;
00682 };
00683
00684
00685
00686 <font class="keyword">inline</font> <font class="keywordtype">bool</font>
<a name="l00687"></a><a class="code" href="XObject_8hpp.html#a2">00687</a> <a class="code" href="ElemAttributeSet_8hpp.html#a1">operator==</a>(
00688 <font class="keyword">const</font> <a class="code" href="classXObjectPtr.html">XObjectPtr</a>&amp; theLHS,
00689 <font class="keyword">const</font> <a class="code" href="classXObjectPtr.html">XObjectPtr</a>&amp; theRHS)<font class="keyword"></font>
00690 <font class="keyword"></font>{
00691 <font class="keywordflow">return</font> theLHS.m_xobjectPtr == theRHS.m_xobjectPtr;
00692 }
00693
00694
00695
00696 <font class="keyword">inline</font> <font class="keywordtype">bool</font>
<a name="l00697"></a><a class="code" href="XObject_8hpp.html#a3">00697</a> <a class="code" href="XObject_8hpp.html#a3">operator!=</a>(
00698 <font class="keyword">const</font> <a class="code" href="classXObjectPtr.html">XObjectPtr</a>&amp; theLHS,
00699 <font class="keyword">const</font> <a class="code" href="classXObjectPtr.html">XObjectPtr</a>&amp; theRHS)<font class="keyword"></font>
00700 <font class="keyword"></font>{
00701 <font class="keywordflow">return</font> !(theLHS == theRHS);
00702 }
00703
00704
00705
00706 <font class="keyword">inline</font> <font class="keywordtype">bool</font>
<a name="l00707"></a><a class="code" href="XObject_8hpp.html#a4">00707</a> <a class="code" href="ElemAttributeSet_8hpp.html#a2">operator&lt;</a>(
00708 <font class="keyword">const</font> <a class="code" href="classXObjectPtr.html">XObjectPtr</a>&amp; theLHS,
00709 <font class="keyword">const</font> <a class="code" href="classXObjectPtr.html">XObjectPtr</a>&amp; theRHS)<font class="keyword"></font>
00710 <font class="keyword"></font>{
00711 <font class="keywordflow">return</font> theLHS.m_xobjectPtr &lt; theRHS.m_xobjectPtr;
00712 }
00713
00714
00715
00716 XALAN_CPP_NAMESPACE_END
00717
00718
00719
00720 <font class="preprocessor">#endif // XOBJECT_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>