Xalan-C++ API Documentation

The Xalan C++ XSLT Processor Version 1.8

Main Page | Directories | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

XercesElementWrapper.hpp

Go to the documentation of this file.
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 <map>
00026 
00027 
00028 
00029 #include <xalanc/XalanDOM/XalanElement.hpp>
00030 #include <xalanc/XalanDOM/XalanNodeList.hpp>
00031 
00032 
00033 
00034 #include <xalanc/PlatformSupport/DOMStringHelper.hpp>
00035 
00036 
00037 
00038 #include <xalanc/XercesParserLiaison/XercesNamedNodeMapWrapper.hpp>
00039 #include <xalanc/XercesParserLiaison/XercesWrapperTypes.hpp>
00040 
00041 
00042 
00043 XALAN_CPP_NAMESPACE_BEGIN
00044 
00045 
00046 
00047 class XercesWrapperNavigator;
00048 
00049 
00050 
00051 class XALAN_XERCESPARSERLIAISON_EXPORT XercesElementWrapper : public XalanElement, private XalanNodeList
00052 {
00053 public:
00054 
00055     XercesElementWrapper(
00056             const DOMElementType*           theXercesElement,
00057             const XercesWrapperNavigator&   theNavigator);
00058 
00059     virtual
00060     ~XercesElementWrapper();
00061 
00062 
00066     virtual const XalanDOMString&
00067     getNodeName() const;
00068 
00072     virtual const XalanDOMString&
00073     getNodeValue() const;
00074 
00078     virtual NodeType
00079     getNodeType() const;
00080 
00090     virtual XalanNode*
00091     getParentNode() const;
00092 
00106     virtual const XalanNodeList*
00107     getChildNodes() const;
00108 
00114     virtual XalanNode*
00115     getFirstChild() const;
00116 
00122     virtual XalanNode*
00123     getLastChild() const;
00124 
00130     virtual XalanNode*
00131     getPreviousSibling() const;
00132 
00138     virtual XalanNode*
00139     getNextSibling() const;
00140 
00145     virtual const XalanNamedNodeMap*
00146     getAttributes() const;
00147 
00157     virtual XalanDocument*
00158     getOwnerDocument() const;
00159 
00161 
00163 
00182 #if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
00183     virtual XalanNode*
00184 #else
00185     virtual XercesElementWrapper*
00186 #endif
00187     cloneNode(bool deep) const;
00188 
00190 
00192 
00209     virtual XalanNode*
00210     insertBefore(
00211             XalanNode*  newChild,
00212             XalanNode*  refChild);
00213 
00227     virtual XalanNode*
00228     replaceChild(
00229             XalanNode*  newChild,
00230             XalanNode*  oldChild);
00231 
00239     virtual XalanNode*
00240     removeChild(XalanNode*  oldChild);
00241 
00253     virtual XalanNode*
00254     appendChild(XalanNode*  newChild);
00255 
00257 
00259 
00267     virtual bool
00268     hasChildNodes() const;
00269 
00270 
00272 
00274 
00275 
00289     virtual void
00290     setNodeValue(const XalanDOMString&      nodeValue);
00291 
00293 
00295 
00312     virtual void
00313     normalize();
00314 
00328     virtual bool
00329     isSupported(
00330             const XalanDOMString&   feature,
00331             const XalanDOMString&   version) const;
00332 
00346     virtual const XalanDOMString&
00347     getNamespaceURI() const;
00348 
00353     virtual const XalanDOMString&
00354     getPrefix() const;
00355 
00363     virtual const XalanDOMString&
00364     getLocalName() const;
00365 
00395     virtual void
00396     setPrefix(const XalanDOMString& prefix);
00397 
00398     virtual bool
00399     isIndexed() const;
00400 
00401     virtual IndexType
00402     getIndex() const;
00403 
00405 
00406     // These interfaces are inherited from XalanElement...
00407 
00416     virtual const XalanDOMString&
00417     getTagName() const;
00418 
00426     virtual const XalanDOMString&
00427     getAttribute(const XalanDOMString&      name) const;
00428 
00436     virtual XalanAttr*
00437     getAttributeNode(const XalanDOMString&      name) const;
00438 
00449     virtual XalanNodeList*
00450     getElementsByTagName(const XalanDOMString&      name) const;
00451 
00453 
00455 
00477     virtual void
00478     setAttribute(
00479             const XalanDOMString&   name, 
00480             const XalanDOMString&   value);
00481 
00501     virtual XalanAttr*
00502     setAttributeNode(XalanAttr*     newAttr);
00503 
00505 
00507     
00523     virtual XalanAttr*
00524     removeAttributeNode(XalanAttr*  oldAttr);
00525 
00538     virtual void
00539     removeAttribute(const XalanDOMString&   name);
00540 
00542 
00544 
00555     virtual const XalanDOMString&
00556     getAttributeNS(
00557             const XalanDOMString&   namespaceURI,
00558             const XalanDOMString&   localName) const;
00559 
00600     virtual void
00601     setAttributeNS(
00602             const XalanDOMString&   namespaceURI,
00603             const XalanDOMString&   qualifiedName,
00604             const XalanDOMString&   value);
00605 
00620     virtual void
00621     removeAttributeNS(
00622             const XalanDOMString&   namespaceURI,
00623             const XalanDOMString&   localName);
00624 
00635     virtual XalanAttr*
00636     getAttributeNodeNS(
00637             const XalanDOMString&   namespaceURI,
00638             const XalanDOMString&   localName) const;
00639 
00659     virtual XalanAttr*
00660     setAttributeNodeNS(XalanAttr*   newAttr);
00661 
00677     virtual XalanNodeList*
00678     getElementsByTagNameNS(
00679             const XalanDOMString&   namespaceURI,
00680             const XalanDOMString&   localName) const;
00681 
00687     const DOMElementType*
00688     getXercesNode() const
00689     {
00690         return m_xercesNode;
00691     }
00692 
00694 
00695 private:
00696 
00697     // Implementation of XalanNodeList for children.
00698     virtual XalanNode*
00699     item(unsigned int   index) const;
00700 
00701     virtual unsigned int
00702     getLength() const;
00703 
00704 
00705     // Not implemented...
00706     XercesElementWrapper(const XercesElementWrapper&    theSource);
00707 
00708     XalanNode&
00709     operator=(const XalanNode&  theSource);
00710 
00711     bool
00712     operator==(const XercesElementWrapper&  theRHS) const;
00713 
00714     // Data members...
00715     const DOMElementType* const     m_xercesNode;
00716 
00717     const XercesWrapperNavigator&   m_navigator;
00718 
00719     XercesNamedNodeMapWrapper       m_attributes;
00720 };
00721 
00722 
00723 
00724 XALAN_CPP_NAMESPACE_END
00725 
00726 
00727 
00728 #endif  // !defined(XERCESELEMENTWRAPPER_HEADER_GUARD_1357924680)

Interpreting class diagrams

Doxygen and GraphViz are used to generate this API documentation from the Xalan-C header files.

Xalan-C++ XSLT Processor Version 1.8
Copyright © 1999-2004 The Apache Software Foundation. All Rights Reserved.