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(XERCESELEMENTWRAPPER_HEADER_GUARD_1357924680) 00017 #define XERCESELEMENTWRAPPER_HEADER_GUARD_1357924680 00018 00019 00020 00021 #include <xalanc/XercesParserLiaison/XercesParserLiaisonDefinitions.hpp> 00022 00023 00024 00025 #include <xalanc/XalanDOM/XalanElement.hpp> 00026 #include <xalanc/XalanDOM/XalanNodeList.hpp> 00027 00028 00029 00030 #include <xalanc/PlatformSupport/DOMStringHelper.hpp> 00031 00032 00033 00034 #include <xalanc/XercesParserLiaison/XercesNamedNodeMapWrapper.hpp> 00035 #include <xalanc/XercesParserLiaison/XercesWrapperTypes.hpp> 00036 00037 00038 00039 XALAN_CPP_NAMESPACE_BEGIN 00040 00041 00042 00043 class XercesWrapperNavigator; 00044 00045 00046 00047 class XALAN_XERCESPARSERLIAISON_EXPORT XercesElementWrapper : public XalanElement, private XalanNodeList 00048 { 00049 public: 00050 00051 XercesElementWrapper( 00052 const DOMElementType* theXercesElement, 00053 const XercesWrapperNavigator& theNavigator); 00054 00055 virtual 00056 ~XercesElementWrapper(); 00057 00058 00062 virtual const XalanDOMString& 00063 getNodeName() const; 00064 00068 virtual const XalanDOMString& 00069 getNodeValue() const; 00070 00074 virtual NodeType 00075 getNodeType() const; 00076 00086 virtual XalanNode* 00087 getParentNode() const; 00088 00102 virtual const XalanNodeList* 00103 getChildNodes() const; 00104 00110 virtual XalanNode* 00111 getFirstChild() const; 00112 00118 virtual XalanNode* 00119 getLastChild() const; 00120 00126 virtual XalanNode* 00127 getPreviousSibling() const; 00128 00134 virtual XalanNode* 00135 getNextSibling() const; 00136 00141 virtual const XalanNamedNodeMap* 00142 getAttributes() const; 00143 00153 virtual XalanDocument* 00154 getOwnerDocument() const; 00155 00157 00159 00178 #if defined(XALAN_NO_COVARIANT_RETURN_TYPE) 00179 virtual XalanNode* 00180 #else 00181 virtual XercesElementWrapper* 00182 #endif 00183 cloneNode(bool deep) const; 00184 00186 00188 00205 virtual XalanNode* 00206 insertBefore( 00207 XalanNode* newChild, 00208 XalanNode* refChild); 00209 00223 virtual XalanNode* 00224 replaceChild( 00225 XalanNode* newChild, 00226 XalanNode* oldChild); 00227 00235 virtual XalanNode* 00236 removeChild(XalanNode* oldChild); 00237 00249 virtual XalanNode* 00250 appendChild(XalanNode* newChild); 00251 00253 00255 00263 virtual bool 00264 hasChildNodes() const; 00265 00266 00268 00270 00271 00285 virtual void 00286 setNodeValue(const XalanDOMString& nodeValue); 00287 00289 00291 00308 virtual void 00309 normalize(); 00310 00324 virtual bool 00325 isSupported( 00326 const XalanDOMString& feature, 00327 const XalanDOMString& version) const; 00328 00342 virtual const XalanDOMString& 00343 getNamespaceURI() const; 00344 00349 virtual const XalanDOMString& 00350 getPrefix() const; 00351 00359 virtual const XalanDOMString& 00360 getLocalName() const; 00361 00391 virtual void 00392 setPrefix(const XalanDOMString& prefix); 00393 00394 virtual bool 00395 isIndexed() const; 00396 00397 virtual IndexType 00398 getIndex() const; 00399 00401 00402 // These interfaces are inherited from XalanElement... 00403 00412 virtual const XalanDOMString& 00413 getTagName() const; 00414 00422 virtual const XalanDOMString& 00423 getAttribute(const XalanDOMString& name) const; 00424 00432 virtual XalanAttr* 00433 getAttributeNode(const XalanDOMString& name) const; 00434 00445 virtual XalanNodeList* 00446 getElementsByTagName(const XalanDOMString& name) const; 00447 00449 00451 00473 virtual void 00474 setAttribute( 00475 const XalanDOMString& name, 00476 const XalanDOMString& value); 00477 00497 virtual XalanAttr* 00498 setAttributeNode(XalanAttr* newAttr); 00499 00501 00503 00519 virtual XalanAttr* 00520 removeAttributeNode(XalanAttr* oldAttr); 00521 00534 virtual void 00535 removeAttribute(const XalanDOMString& name); 00536 00538 00540 00551 virtual const XalanDOMString& 00552 getAttributeNS( 00553 const XalanDOMString& namespaceURI, 00554 const XalanDOMString& localName) const; 00555 00596 virtual void 00597 setAttributeNS( 00598 const XalanDOMString& namespaceURI, 00599 const XalanDOMString& qualifiedName, 00600 const XalanDOMString& value); 00601 00616 virtual void 00617 removeAttributeNS( 00618 const XalanDOMString& namespaceURI, 00619 const XalanDOMString& localName); 00620 00631 virtual XalanAttr* 00632 getAttributeNodeNS( 00633 const XalanDOMString& namespaceURI, 00634 const XalanDOMString& localName) const; 00635 00655 virtual XalanAttr* 00656 setAttributeNodeNS(XalanAttr* newAttr); 00657 00673 virtual XalanNodeList* 00674 getElementsByTagNameNS( 00675 const XalanDOMString& namespaceURI, 00676 const XalanDOMString& localName) const; 00677 00683 const DOMElementType* 00684 getXercesNode() const 00685 { 00686 return m_xercesNode; 00687 } 00688 00690 00691 private: 00692 00693 // Implementation of XalanNodeList for children. 00694 virtual XalanNode* 00695 item(unsigned int index) const; 00696 00697 virtual unsigned int 00698 getLength() const; 00699 00700 00701 // Not implemented... 00702 XercesElementWrapper(const XercesElementWrapper& theSource); 00703 00704 XalanNode& 00705 operator=(const XalanNode& theSource); 00706 00707 bool 00708 operator==(const XercesElementWrapper& theRHS) const; 00709 00710 // Data members... 00711 const DOMElementType* const m_xercesNode; 00712 00713 const XercesWrapperNavigator& m_navigator; 00714 00715 XercesNamedNodeMapWrapper m_attributes; 00716 }; 00717 00718 00719 00720 XALAN_CPP_NAMESPACE_END 00721 00722 00723 00724 #endif // !defined(XERCESELEMENTWRAPPER_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 |
|