00001 /* 00002 * Copyright 1999-2004 The Apache Software Foundation. 00003 * 00004 * Licensed under the Apache License, Version 2.0 (the "License"); 00005 * you may not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 */ 00016 #if !defined(XERCESWRAPPERNAVIGATOR_HEADER_GUARD_1357924680) 00017 #define XERCESWRAPPERNAVIGATOR_HEADER_GUARD_1357924680 00018 00019 00020 00021 #include <xalanc/XercesParserLiaison/XercesParserLiaisonDefinitions.hpp> 00022 00023 00024 00025 #include <cassert> 00026 00027 00028 00029 #include <xercesc/util/XercesDefs.hpp> 00030 00031 00032 00033 #include <xalanc/XalanDOM/XalanDOMString.hpp> 00034 #include <xalanc/XalanDOM/XalanNode.hpp> 00035 00036 00037 00038 #include <xalanc/XercesParserLiaison/XercesWrapperTypes.hpp> 00039 00040 00041 00042 XALAN_CPP_NAMESPACE_BEGIN 00043 00044 00045 00046 class XercesDocumentWrapper; 00047 class XalanAttr; 00048 class XalanElement; 00049 class XalanText; 00050 00051 00052 00053 class XALAN_XERCESPARSERLIAISON_EXPORT XercesWrapperNavigator 00054 { 00055 public: 00056 00057 typedef XalanNode::IndexType IndexType; 00058 00059 explicit 00060 XercesWrapperNavigator(XercesDocumentWrapper* theOwnerDocument = 0); 00061 00062 XercesWrapperNavigator(const XercesWrapperNavigator& theSource); 00063 00064 virtual 00065 ~XercesWrapperNavigator(); 00066 00067 00068 XercesDocumentWrapper* 00069 getOwnerDocument() const 00070 { 00071 return m_ownerDocument; 00072 } 00073 00074 void 00075 setOwnerDocument(XercesDocumentWrapper* theDocument) 00076 { 00077 m_ownerDocument = theDocument; 00078 } 00079 00080 XalanNode* 00081 mapNode(const DOMNodeType* theXercesNode) const; 00082 00083 XalanAttr* 00084 mapNode(const DOMAttrType* theXercesNode) const; 00085 00086 const DOMNodeType* 00087 mapNode(XalanNode* theXalanNode) const; 00088 00089 IndexType 00090 getIndex() const 00091 { 00092 return m_index; 00093 } 00094 00095 void 00096 setIndex(IndexType theIndex) 00097 { 00098 m_index = theIndex; 00099 } 00100 00101 XalanNode* 00102 getParentNode(const DOMNodeType* theXercesNode) const; 00103 00104 XalanNode* 00105 getParentNode() const 00106 { 00107 return m_parentNode; 00108 } 00109 00110 void 00111 setParentNode(XalanNode* theParent) 00112 { 00113 m_parentNode = theParent; 00114 } 00115 00116 XalanNode* 00117 getPreviousSibling(const DOMNodeType* theXercesNode) const; 00118 00119 XalanNode* 00120 getPreviousSibling() const 00121 { 00122 return m_previousSibling; 00123 } 00124 00125 void 00126 setPreviousSibling(XalanNode* thePreviousSibling) 00127 { 00128 m_previousSibling = thePreviousSibling; 00129 } 00130 00131 XalanNode* 00132 getNextSibling(const DOMNodeType* theXercesNode) const; 00133 00134 XalanNode* 00135 getNextSibling() const 00136 { 00137 return m_nextSibling; 00138 } 00139 00140 void 00141 setNextSibling(XalanNode* theNextSibling) 00142 { 00143 m_nextSibling = theNextSibling; 00144 } 00145 00146 XalanNode* 00147 getFirstChild(const DOMNodeType* theXercesNode) const; 00148 00149 XalanNode* 00150 getFirstChild() const 00151 { 00152 return m_firstChild; 00153 } 00154 00155 void 00156 setFirstChild(XalanNode* theFirstChild) 00157 { 00158 m_firstChild = theFirstChild; 00159 } 00160 00161 XalanNode* 00162 getLastChild(const DOMNodeType* theXercesNode) const; 00163 00164 XalanNode* 00165 getLastChild() const 00166 { 00167 return m_lastChild; 00168 } 00169 00170 void 00171 setLastChild(XalanNode* theLastChild) 00172 { 00173 m_lastChild = theLastChild; 00174 } 00175 00176 XalanElement* 00177 getOwnerElement(const DOMAttrType* theXercesAttr) const; 00178 00186 const XalanDOMString& 00187 getPooledString(const XMLCh* theString) const; 00188 00189 private: 00190 00191 // Not implemented... 00192 bool 00193 operator==(const XercesWrapperNavigator& theRHS) const; 00194 00195 // Data members... 00196 XercesDocumentWrapper* m_ownerDocument; 00197 00198 XalanNode* m_parentNode; 00199 00200 XalanNode* m_previousSibling; 00201 00202 XalanNode* m_nextSibling; 00203 00204 XalanNode* m_firstChild; 00205 00206 XalanNode* m_lastChild; 00207 00208 IndexType m_index; 00209 00210 static const XalanDOMString s_emptyString; 00211 }; 00212 00213 00214 00215 XALAN_CPP_NAMESPACE_END 00216 00217 00218 00219 #endif // !defined(XERCESWRAPPERNAVIGATOR_HEADER_GUARD_1357924680)
Doxygen and GraphViz are used to generate this API documentation from the Xalan-C header files.
Xalan-C++ XSLT Processor Version 1.10 |
|