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

XalanSourceTreeElementA.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(XALANSOURCETREEELEMENTA_HEADER_GUARD_1357924680)
00017 #define XALANSOURCETREEELEMENTA_HEADER_GUARD_1357924680
00018 
00019 
00020 
00021 #include <xalanc/XalanSourceTree/XalanSourceTreeDefinitions.hpp>
00022 
00023 
00024 
00025 #include <xalanc/XalanDOM/XalanNamedNodeMap.hpp>
00026 
00027 
00028 
00029 #include <xalanc/XalanSourceTree/XalanSourceTreeElement.hpp>
00030 
00031 
00032 
00033 XALAN_CPP_NAMESPACE_BEGIN
00034 
00035 
00036 
00037 class XALAN_XALANSOURCETREE_EXPORT XalanSourceTreeElementA : public XalanSourceTreeElement, private XalanNamedNodeMap
00038 {
00039 public:
00040 
00041     typedef unsigned long   AttributesCountType;
00042 
00055     XalanSourceTreeElementA(
00056             const XalanDOMString&       theTagName,
00057             XalanSourceTreeDocument*    theOwnerDocument,
00058             XalanSourceTreeAttr**       theAttributes,
00059             AttributesCountType         theAttributeCount,
00060             XalanNode*                  theParentNode = 0,
00061             XalanNode*                  thePreviousSibling = 0,
00062             XalanNode*                  theNextSibling = 0,
00063             IndexType                   theIndex = 0);
00064 
00065     virtual
00066     ~XalanSourceTreeElementA();
00067 
00068 
00069     virtual const XalanNamedNodeMap*
00070     getAttributes() const;
00071 
00072 #if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
00073     virtual XalanNode*
00074 #else
00075     virtual XalanSourceTreeElementA*
00076 #endif
00077     cloneNode(bool deep) const;
00078 
00079     virtual const XalanDOMString&
00080     getNamespaceURI() const;
00081 
00082     virtual const XalanDOMString&
00083     getPrefix() const;
00084 
00085     virtual const XalanDOMString&
00086     getLocalName() const;
00087 
00088     virtual const XalanDOMString&
00089     getAttribute(const XalanDOMString&      name) const;
00090 
00091     virtual XalanAttr*
00092     getAttributeNode(const XalanDOMString&      name) const;
00093 
00094     virtual const XalanDOMString&
00095     getAttributeNS(
00096             const XalanDOMString&   namespaceURI,
00097             const XalanDOMString&   localName) const;
00098 
00099     virtual XalanAttr*
00100     getAttributeNodeNS(
00101             const XalanDOMString&   namespaceURI,
00102             const XalanDOMString&   localName) const;
00103 
00104 
00105     // public interfaces not inherited from XalanElement...
00106 
00107     AttributesCountType
00108     getAttributeCount() const
00109     {
00110         return m_attributeCount;
00111     }
00112 
00113     XalanSourceTreeAttr*
00114     getAttributeByIndex(AttributesCountType     index) const
00115     {
00116         return index < m_attributeCount ? m_attributes[index] : 0;
00117     }
00118 
00119     XalanSourceTreeElementA*
00120     clone(bool  deep) const
00121     {
00122         return new XalanSourceTreeElementA(*this, deep);
00123     }
00124 
00125 protected:
00126 
00127     XalanSourceTreeElementA(
00128             const XalanSourceTreeElementA&  theSource,
00129             bool                            deep = false);
00130 
00131 private:
00132 
00133     // These are from XalanNamedNodeMap...
00134 
00135     virtual XalanNode*
00136     setNamedItem(XalanNode*     arg);
00137 
00138     virtual XalanNode*
00139     item(unsigned int   index) const;
00140 
00141     virtual XalanNode*
00142     getNamedItem(const XalanDOMString&  name) const;
00143 
00144     virtual unsigned int
00145     getLength() const;
00146 
00147     virtual XalanNode*
00148     removeNamedItem(const XalanDOMString&   name);
00149 
00150     virtual XalanNode*
00151     getNamedItemNS(
00152             const XalanDOMString&   namespaceURI,
00153             const XalanDOMString&   localName) const;
00154 
00155     virtual XalanNode*
00156     setNamedItemNS(XalanNode*   arg);
00157 
00158     virtual XalanNode*
00159     removeNamedItemNS(
00160             const XalanDOMString&   namespaceURI,
00161             const XalanDOMString&   localName);
00162 
00163 
00164     // Not implemented...
00165     XalanSourceTreeElementA&
00166     operator=(const XalanSourceTreeElementA&    theSource);
00167 
00168     bool
00169     operator==(const XalanSourceTreeElementA&   theRHS) const;
00170 
00171 
00172     // Data members...
00173     XalanSourceTreeAttr* const *    m_attributes;
00174 
00175     const AttributesCountType       m_attributeCount;
00176 };
00177 
00178 
00179 
00180 XALAN_CPP_NAMESPACE_END
00181 
00182 
00183 
00184 #endif  // !defined(XALANSOURCETREEELEMENTA_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.