Xalan-C++ API Documentation

The Xalan C++ XSLT Processor Version 1.10

Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

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             MemoryManagerType&          theManager,
00057             const XalanDOMString&       theTagName,
00058             XalanSourceTreeDocument*    theOwnerDocument,
00059             XalanSourceTreeAttr**       theAttributes,
00060             AttributesCountType         theAttributeCount,
00061             XalanNode*                  theParentNode = 0,
00062             XalanNode*                  thePreviousSibling = 0,
00063             XalanNode*                  theNextSibling = 0,
00064             IndexType                   theIndex = 0);
00065 
00066     virtual
00067     ~XalanSourceTreeElementA();
00068 
00069 
00070     virtual const XalanNamedNodeMap*
00071     getAttributes() const;
00072 
00073 #if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
00074     virtual XalanNode*
00075 #else
00076     virtual XalanSourceTreeElementA*
00077 #endif
00078     cloneNode(bool deep) const;
00079 
00080     virtual const XalanDOMString&
00081     getNamespaceURI() const;
00082 
00083     virtual const XalanDOMString&
00084     getPrefix() const;
00085 
00086     virtual const XalanDOMString&
00087     getLocalName() const;
00088 
00089     virtual const XalanDOMString&
00090     getAttribute(const XalanDOMString&      name) const;
00091 
00092     virtual XalanAttr*
00093     getAttributeNode(const XalanDOMString&      name) const;
00094 
00095     virtual const XalanDOMString&
00096     getAttributeNS(
00097             const XalanDOMString&   namespaceURI,
00098             const XalanDOMString&   localName) const;
00099 
00100     virtual XalanAttr*
00101     getAttributeNodeNS(
00102             const XalanDOMString&   namespaceURI,
00103             const XalanDOMString&   localName) const;
00104 
00105 
00106     // public interfaces not inherited from XalanElement...
00107 
00108     AttributesCountType
00109     getAttributeCount() const
00110     {
00111         return m_attributeCount;
00112     }
00113 
00114     XalanSourceTreeAttr*
00115     getAttributeByIndex(AttributesCountType     index) const
00116     {
00117         return index < m_attributeCount ? m_attributes[index] : 0;
00118     }
00119 
00120     XalanSourceTreeElementA*
00121     clone(bool  deep) const
00122     {
00123         MemoryManagerType& theManager = const_cast<XalanSourceTreeElementA*>(this)->getMemoryManager();
00124 
00125         return XalanSourceTreeElementA::create(theManager, *this, deep);
00126     }
00127 
00128 protected:
00129 
00130     XalanSourceTreeElementA(
00131             MemoryManagerType&              theManager,
00132             const XalanSourceTreeElementA&  theSource,
00133             bool                            deep = false);
00134 
00135     static XalanSourceTreeElementA*
00136     create(
00137             MemoryManagerType&              theManager,
00138             const XalanSourceTreeElementA&  theSource,
00139             bool                            deep = false);
00140 
00141 private:
00142 
00143     // These are from XalanNamedNodeMap...
00144 
00145     virtual XalanNode*
00146     setNamedItem(XalanNode*     arg);
00147 
00148     virtual XalanNode*
00149     item(unsigned int   index) const;
00150 
00151     virtual XalanNode*
00152     getNamedItem(const XalanDOMString&  name) const;
00153 
00154     virtual unsigned int
00155     getLength() const;
00156 
00157     virtual XalanNode*
00158     removeNamedItem(const XalanDOMString&   name);
00159 
00160     virtual XalanNode*
00161     getNamedItemNS(
00162             const XalanDOMString&   namespaceURI,
00163             const XalanDOMString&   localName) const;
00164 
00165     virtual XalanNode*
00166     setNamedItemNS(XalanNode*   arg);
00167 
00168     virtual XalanNode*
00169     removeNamedItemNS(
00170             const XalanDOMString&   namespaceURI,
00171             const XalanDOMString&   localName);
00172 
00173 
00174     // Not implemented...
00175     XalanSourceTreeElementA&
00176     operator=(const XalanSourceTreeElementA&    theSource);
00177 
00178     bool
00179     operator==(const XalanSourceTreeElementA&   theRHS) const;
00180 
00181 
00182     // Data members...
00183     XalanSourceTreeAttr* const *    m_attributes;
00184 
00185     const AttributesCountType       m_attributeCount;
00186 };
00187 
00188 
00189 
00190 XALAN_CPP_NAMESPACE_END
00191 
00192 
00193 
00194 #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.

dot

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

Apache Logo