Xalan-C++ API Documentation

The Xalan C++ XSL Transformer Version 1.1

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

XercesDOM_NodeHack.hpp

Go to the documentation of this file.
00001 #if !defined(XERCESDOM_NODEHACK_HEADER_GUARD_1357924680)
00002 #define XERCESDOM_NODEHACK_HEADER_GUARD_1357924680
00003 
00004 
00005 
00006 #include <XercesParserLiaison/XercesParserLiaisonDefinitions.hpp>
00007 
00008 
00009 
00010 #include <dom/DOM_Node.hpp>
00011 #include <dom/DOM_Attr.hpp>
00012 #include <dom/DOM_Element.hpp>
00013 #include <dom/DOM_Text.hpp>
00014 
00015 
00016 
00017 // An evil class to hack the Xerces smart-pointer class.  I'm
00018 // only doing this because I have to...
00019 class XALAN_XERCESPARSERLIAISON_EXPORT XercesDOM_NodeHack : public DOM_Node
00020 {
00021 public:
00022 
00023     XercesDOM_NodeHack(NodeImpl*    theImpl = 0);
00024 
00025     ~XercesDOM_NodeHack();
00026 
00027     NodeImpl*
00028     getImpl() const
00029     {
00030         return fImpl;
00031     }
00032 
00033     static NodeImpl*
00034     getImpl(const DOM_Node&     theNode)
00035     {
00036 #if defined(XALAN_OLD_STYLE_CASTS)
00037         return ((const XercesDOM_NodeHack&)theNode).getImpl();
00038 #else
00039         return static_cast<const XercesDOM_NodeHack&>(theNode).getImpl();
00040 #endif
00041     }
00042 };
00043 
00044 
00045 
00046 class XALAN_XERCESPARSERLIAISON_EXPORT XercesDOM_AttrHack : public DOM_Attr
00047 {
00048 public:
00049 
00050     XercesDOM_AttrHack(AttrImpl*    theImpl = 0);
00051 
00052     XercesDOM_AttrHack(const DOM_Attr&  theSource);
00053 
00054     ~XercesDOM_AttrHack();
00055 };
00056 
00057 
00058 
00059 class XALAN_XERCESPARSERLIAISON_EXPORT XercesDOM_ElementHack : public DOM_Element
00060 {
00061 public:
00062 
00063     XercesDOM_ElementHack(ElementImpl*  theImpl = 0);
00064 
00065     XercesDOM_ElementHack(const DOM_Element&    theSource);
00066 
00067     ~XercesDOM_ElementHack();
00068 
00069 
00070     const DOMString
00071     getNodeNameImpl() const;
00072 
00073     const DOMString
00074     getNodeValueImpl() const;
00075 
00076     const DOMString
00077     getNamespaceURIImpl() const;
00078 
00079     const DOMString
00080     getPrefixImpl() const;
00081 
00082     const DOMString
00083     getLocalNameImpl() const;
00084 
00085     const DOMString
00086     getTagNameImpl() const;
00087 
00088     const DOMString
00089     getAttributeImpl(const DOMString&   name) const;
00090 
00091     const DOMString
00092     getAttributeNSImpl(
00093             const DOMString&    namespaceURI,
00094             const DOMString&    localName) const;
00095 
00096     ElementImpl*
00097     getImpl() const
00098     {
00099 #if defined(XALAN_OLD_STYLE_CASTS)
00100         return (ElementImpl*)fImpl;
00101 #else
00102         return reinterpret_cast<ElementImpl*>(fImpl);
00103 #endif
00104     }
00105 
00106     static ElementImpl*
00107     getImpl(const DOM_Element&  theNode)
00108     {
00109 #if defined(XALAN_OLD_STYLE_CASTS)
00110         return ((const XercesDOM_ElementHack&)theNode).getImpl();
00111 #else
00112         return static_cast<const XercesDOM_ElementHack&>(theNode).getImpl();
00113 #endif
00114     }
00115 };
00116 
00117 
00118 
00119 class XALAN_XERCESPARSERLIAISON_EXPORT XercesDOM_TextHack : public DOM_Text
00120 {
00121 public:
00122 
00123     XercesDOM_TextHack(TextImpl*    theImpl = 0);
00124 
00125     XercesDOM_TextHack(const DOM_Text&  theSource);
00126 
00127     ~XercesDOM_TextHack();
00128 
00129 
00130     const DOMString
00131     getNodeNameImpl() const;
00132 
00133     const DOMString
00134     getNodeValueImpl() const;
00135 
00136     const DOMString
00137     getNamespaceURIImpl() const;
00138 
00139     const DOMString
00140     getPrefixImpl() const;
00141 
00142     const DOMString
00143     getLocalNameImpl() const;
00144 
00145     const DOMString
00146     getDataImpl() const;
00147 
00148     TextImpl*
00149     getImpl() const
00150     {
00151 #if defined(XALAN_OLD_STYLE_CASTS)
00152         return (TextImpl*)fImpl;
00153 #else
00154         return reinterpret_cast<TextImpl*>(fImpl);
00155 #endif
00156     }
00157 
00158     static TextImpl*
00159     getImpl(const DOM_Text& theNode)
00160     {
00161 #if defined(XALAN_OLD_STYLE_CASTS)
00162         return ((const XercesDOM_TextHack&)theNode).getImpl();
00163 #else
00164         return static_cast<const XercesDOM_TextHack&>(theNode).getImpl();
00165 #endif
00166     }
00167 };
00168 
00169 
00170 
00171 #endif  // !defined(XERCESDOM_NODEHACK_HEADER_GUARD_1357924680)

Interpreting class diagrams

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

Xalan-C++ XSL Transformer Version 1.1
Copyright © 2000, 2001 The Apache Software Foundation. All Rights Reserved.