00001 /* 00002 * The Apache Software License, Version 1.1 00003 * 00004 * 00005 * Copyright (c) 1999 The Apache Software Foundation. All rights 00006 * reserved. 00007 * 00008 * Redistribution and use in source and binary forms, with or without 00009 * modification, are permitted provided that the following conditions 00010 * are met: 00011 * 00012 * 1. Redistributions of source code must retain the above copyright 00013 * notice, this list of conditions and the following disclaimer. 00014 * 00015 * 2. Redistributions in binary form must reproduce the above copyright 00016 * notice, this list of conditions and the following disclaimer in 00017 * the documentation and/or other materials provided with the 00018 * distribution. 00019 * 00020 * 3. The end-user documentation included with the redistribution, 00021 * if any, must include the following acknowledgment: 00022 * "This product includes software developed by the 00023 * Apache Software Foundation (http://www.apache.org/)." 00024 * Alternately, this acknowledgment may appear in the software itself, 00025 * if and wherever such third-party acknowledgments normally appear. 00026 * 00027 * 4. The names "Xalan" and "Apache Software Foundation" must 00028 * not be used to endorse or promote products derived from this 00029 * software without prior written permission. For written 00030 * permission, please contact apache@apache.org. 00031 * 00032 * 5. Products derived from this software may not be called "Apache", 00033 * nor may "Apache" appear in their name, without prior written 00034 * permission of the Apache Software Foundation. 00035 * 00036 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 00037 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 00038 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00039 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 00040 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00041 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00042 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 00043 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 00044 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00045 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 00046 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 00047 * SUCH DAMAGE. 00048 * ==================================================================== 00049 * 00050 * This software consists of voluntary contributions made by many 00051 * individuals on behalf of the Apache Software Foundation and was 00052 * originally based on software copyright (c) 1999, International 00053 * Business Machines, Inc., http://www.ibm.com. For more 00054 * information on the Apache Software Foundation, please see 00055 * <http://www.apache.org/>. 00056 */ 00057 #if !defined(XERCESBRIDGENAVIGATOR_HEADER_GUARD_1357924680) 00058 #define XERCESBRIDGENAVIGATOR_HEADER_GUARD_1357924680 00059 00060 00061 00062 #include <XercesParserLiaison/XercesParserLiaisonDefinitions.hpp> 00063 00064 00065 00066 #include <cassert> 00067 00068 00069 00070 #include <XalanDOM/XalanDOMString.hpp> 00071 00072 00073 00074 class DOM_Attr; 00075 class DOM_Node; 00076 class XercesDocumentBridge; 00077 class XalanAttr; 00078 class XalanElement; 00079 class XalanNode; 00080 class XalanText; 00081 class DOM_Text; 00082 class DOMString; 00083 00084 00085 00086 class XALAN_XERCESPARSERLIAISON_EXPORT XercesBridgeNavigator 00087 { 00088 public: 00089 00090 explicit 00091 XercesBridgeNavigator( 00092 XercesDocumentBridge* theOwnerDocument = 0, 00093 bool mappingMode = true); 00094 00095 XercesBridgeNavigator(const XercesBridgeNavigator& theSource); 00096 00097 virtual 00098 ~XercesBridgeNavigator(); 00099 00100 00101 XercesDocumentBridge* 00102 getOwnerDocument() const 00103 { 00104 return m_ownerDocument; 00105 } 00106 00107 void 00108 setOwnerDocument(XercesDocumentBridge* theDocument) 00109 { 00110 m_ownerDocument = theDocument; 00111 } 00112 00113 XalanNode* 00114 mapNode(const DOM_Node& theXercesNode) const; 00115 00116 XalanAttr* 00117 mapNode(const DOM_Attr& theXercesNode) const; 00118 00119 DOM_Node 00120 mapNode(const XalanNode* theXalanNode) const; 00121 00122 DOM_Attr 00123 mapNode(const XalanAttr* theXercesNode) const; 00124 00125 unsigned long 00126 getIndex() const 00127 { 00128 return m_index; 00129 } 00130 00131 void 00132 setIndex(unsigned long theIndex) 00133 { 00134 m_index = theIndex; 00135 } 00136 00137 XalanNode* 00138 getParentNode(const DOM_Node& theXercesNode) const; 00139 00140 XalanNode* 00141 getParentNode() const 00142 { 00143 return m_parentNode; 00144 } 00145 00146 void 00147 setParentNode(XalanNode* theParent) 00148 { 00149 m_parentNode = theParent; 00150 } 00151 00152 XalanNode* 00153 getPreviousSibling(const DOM_Node& theXercesNode) const; 00154 00155 XalanNode* 00156 getPreviousSibling() const 00157 { 00158 return m_previousSibling; 00159 } 00160 00161 void 00162 setPreviousSibling(XalanNode* thePreviousSibling) 00163 { 00164 m_previousSibling = thePreviousSibling; 00165 } 00166 00167 XalanNode* 00168 getNextSibling(const DOM_Node& theXercesNode) const; 00169 00170 XalanNode* 00171 getNextSibling() const 00172 { 00173 return m_nextSibling; 00174 } 00175 00176 void 00177 setNextSibling(XalanNode* theNextSibling) 00178 { 00179 m_nextSibling = theNextSibling; 00180 } 00181 00182 XalanNode* 00183 getFirstChild(const DOM_Node& theXercesNode) const; 00184 00185 XalanNode* 00186 getFirstChild() const 00187 { 00188 return m_firstChild; 00189 } 00190 00191 void 00192 setFirstChild(XalanNode* theFirstChild) 00193 { 00194 m_firstChild = theFirstChild; 00195 } 00196 00197 XalanNode* 00198 getLastChild(const DOM_Node& theXercesNode) const; 00199 00200 XalanNode* 00201 getLastChild() const 00202 { 00203 return m_lastChild; 00204 } 00205 00206 void 00207 setLastChild(XalanNode* theLastChild) 00208 { 00209 m_lastChild = theLastChild; 00210 } 00211 00212 XalanNode* 00213 insertBefore( 00214 DOM_Node& theXercesParent, 00215 XalanNode* newChild, 00216 XalanNode* refChild) const; 00217 00218 XalanNode* 00219 replaceChild( 00220 DOM_Node& theXercesParent, 00221 XalanNode* newChild, 00222 XalanNode* oldChild) const; 00223 00224 XalanNode* 00225 removeChild( 00226 DOM_Node& theXercesParent, 00227 XalanNode* oldChild) const; 00228 00229 XalanNode* 00230 appendChild( 00231 DOM_Node& theXercesParent, 00232 XalanNode* newChild) const; 00233 00234 XalanElement* 00235 getOwnerElement(const DOM_Attr& theXercesAttr) const; 00236 00237 XalanNode* 00238 cloneNode( 00239 const XalanNode* theXalanNode, 00240 const DOM_Node& theXercesNode, 00241 bool deep) const; 00242 00243 XalanText* 00244 splitText( 00245 DOM_Text& theXercesText, 00246 unsigned int offset) const; 00247 00255 const XalanDOMString& 00256 getPooledString(const DOMString& theString) const; 00257 00258 private: 00259 00260 // Not implemented... 00261 bool 00262 operator==(const XercesBridgeNavigator& theRHS) const; 00263 00264 // Data members... 00265 XercesDocumentBridge* m_ownerDocument; 00266 00267 mutable XalanNode* m_parentNode; 00268 00269 mutable XalanNode* m_previousSibling; 00270 00271 mutable XalanNode* m_nextSibling; 00272 00273 mutable XalanNode* m_firstChild; 00274 00275 mutable XalanNode* m_lastChild; 00276 00277 unsigned long m_index; 00278 }; 00279 00280 00281 00282 #endif // !defined(XERCESBRIDGENAVIGATOR_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.4 |
|