## Xalan-C++ API Documentation

### The Xalan C++ XSLT Processor Version 1.6

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 /*
    00002  * The Apache Software License, Version 1.1
    00003  *
    00004  *
    00005  * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
    00006  * reserved.
    00007  *
    00008  * Redistribution and use in source and binary forms, with or without
    00009  * modification, are permitted provided that the following conditions
    00010  * are met:
    00011  *
    00012  * 1. Redistributions of source code must retain the above copyright
    00013  *    notice, this list of conditions and the following disclaimer.
    00014  *
    00015  * 2. Redistributions in binary form must reproduce the above copyright
    00016  *    notice, this list of conditions and the following disclaimer in
    00017  *    the documentation and/or other materials provided with the
    00018  *    distribution.
    00019  *
    00020  * 3. The end-user documentation included with the redistribution,
    00021  *    if any, must include the following acknowledgment:
    00022  *       "This product includes software developed by the
    00023  *        Apache Software Foundation (http://www.apache.org/)."
    00024  *    Alternately, this acknowledgment may appear in the software itself,
    00025  *    if and wherever such third-party acknowledgments normally appear.
    00026  *
    00027  * 4. The names "Xalan" and "Apache Software Foundation" must
    00028  *    not be used to endorse or promote products derived from this
    00029  *    software without prior written permission. For written
    00030  *    permission, please contact apache@apache.org.
    00031  *
    00032  * 5. Products derived from this software may not be called "Apache",
    00033  *    nor may "Apache" appear in their name, without prior written
    00034  *    permission of the Apache Software Foundation.
    00035  *
    00036  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
    00037  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
    00038  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    00039  * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
    00040  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    00041  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    00042  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
    00043  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
    00044  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    00045  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
    00046  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    00047  * SUCH DAMAGE.
    00048  * ====================================================================
    00049  *
    00050  * This software consists of voluntary contributions made by many
    00051  * individuals on behalf of the Apache Software Foundation and was
    00052  * originally based on software copyright (c) 1999, International
    00053  * Business Machines, Inc., http://www.ibm.com.  For more
    00054  * information on the Apache Software Foundation, please see
    00055  * <http://www.apache.org/>.
    00056  */
    00057
    00058 #if !defined(XERCESDOM_NODEHACK_HEADER_GUARD_1357924680)
    00059 #define XERCESDOM_NODEHACK_HEADER_GUARD_1357924680
    00060
    00061
    00062
    00063 #include <xalanc/XercesParserLiaison/XercesParserLiaisonDefinitions.hpp>
    00064
    00065
    00066
    00067 #if XERCES_VERSION_MAJOR >= 2
    00068 #include <xercesc/dom/deprecated/DOM_Node.hpp>
    00069 #include <xercesc/dom/deprecated/DOM_Attr.hpp>
    00070 #include <xercesc/dom/deprecated/DOM_Element.hpp>
    00071 #include <xercesc/dom/deprecated/DOM_Text.hpp>
    00072 #else
    00073 #include <xercesc/dom/DOM_Node.hpp>
    00074 #include <xercesc/dom/DOM_Attr.hpp>
    00075 #include <xercesc/dom/DOM_Element.hpp>
    00076 #include <xercesc/dom/DOM_Text.hpp>
    00077 #endif
    00078
    00079
    00080
    00081 #include <xalanc/XercesParserLiaison/XercesBridgeTypes.hpp>
    00082
    00083
    00084
    00085 XALAN_CPP_NAMESPACE_BEGIN
    00086
    00087
    00088
    00089 // An evil class to hack the Xerces smart-pointer class.  I'm
    00090 // only doing this because I have to...
    00091 class XALAN_XERCESPARSERLIAISON_EXPORT XercesDOM_NodeHack : public XERCES_CPP_NAMESPACE_QUALIFIER DOM_Node
    00092 {
    00093 public:
    00094
    00095     typedef XERCES_CPP_NAMESPACE_QUALIFIER DOM_Node     ParentType;
    00096
    00097     XercesDOM_NodeHack(NodeImplType*    theImpl = 0);
    00098
    00099     ~XercesDOM_NodeHack();
    00100
    00101     NodeImplType*
    00102     getImpl() const
    00103     {
    00104         return fImpl;
    00105     }
    00106
    00107     static NodeImplType*
    00108     getImpl(const ParentType&       theNode)
    00109     {
    00110 #if defined(XALAN_OLD_STYLE_CASTS)
    00111         return ((const XercesDOM_NodeHack&)theNode).getImpl();
    00112 #else
    00113         return static_cast<const XercesDOM_NodeHack&>(theNode).getImpl();
    00114 #endif
    00115     }
    00116 };
    00117
    00118
    00119
    00120 class XALAN_XERCESPARSERLIAISON_EXPORT XercesDOM_AttrHack : public XERCES_CPP_NAMESPACE_QUALIFIER DOM_Attr
    00121 {
    00122 public:
    00123
    00124     typedef XERCES_CPP_NAMESPACE_QUALIFIER DOM_Attr     ParentType;
    00125
    00126     XercesDOM_AttrHack(AttrImplType*    theImpl = 0);
    00127
    00128     XercesDOM_AttrHack(const ParentType&    theSource);
    00129
    00130     ~XercesDOM_AttrHack();
    00131 };
    00132
    00133
    00134
    00135 class XALAN_XERCESPARSERLIAISON_EXPORT XercesDOM_ElementHack : public XERCES_CPP_NAMESPACE_QUALIFIER DOM_Element
    00136 {
    00137 public:
    00138
    00139     typedef XERCES_CPP_NAMESPACE_QUALIFIER DOM_Element  ParentType;
    00140
    00141     XercesDOM_ElementHack(ElementImplType*  theImpl = 0);
    00142
    00143     XercesDOM_ElementHack(const ParentType&     theSource);
    00144
    00145     ~XercesDOM_ElementHack();
    00146
    00147
    00148     const DOMStringType
    00149     getNodeNameImpl() const;
    00150
    00151     const DOMStringType
    00152     getNodeValueImpl() const;
    00153
    00154     const DOMStringType
    00155     getNamespaceURIImpl() const;
    00156
    00157     const DOMStringType
    00158     getPrefixImpl() const;
    00159
    00160     const DOMStringType
    00161     getLocalNameImpl() const;
    00162
    00163     const DOMStringType
    00164     getTagNameImpl() const;
    00165
    00166     const DOMStringType
    00167     getAttributeImpl(const DOMStringType&   name) const;
    00168
    00169     const DOMStringType
    00170     getAttributeNSImpl(
    00171             const DOMStringType&    namespaceURI,
    00172             const DOMStringType&    localName) const;
    00173
    00174     ElementImplType*
    00175     getImpl() const
    00176     {
    00177 #if defined(XALAN_OLD_STYLE_CASTS)
    00178         return (ElementImplType*)fImpl;
    00179 #else
    00180         return reinterpret_cast<ElementImplType*>(fImpl);
    00181 #endif
    00182     }
    00183
    00184     static ElementImplType*
    00185     getImpl(const ParentType&   theNode)
    00186     {
    00187 #if defined(XALAN_OLD_STYLE_CASTS)
    00188         return ((const XercesDOM_ElementHack&)theNode).getImpl();
    00189 #else
    00190         return static_cast<const XercesDOM_ElementHack&>(theNode).getImpl();
    00191 #endif
    00192     }
    00193 };
    00194
    00195
    00196
    00197 class XALAN_XERCESPARSERLIAISON_EXPORT XercesDOM_TextHack : public XERCES_CPP_NAMESPACE_QUALIFIER DOM_Text
    00198 {
    00199 public:
    00200
    00201     typedef XERCES_CPP_NAMESPACE_QUALIFIER DOM_Text     ParentType;
    00202
    00203     XercesDOM_TextHack(TextImplType*    theImpl = 0);
    00204
    00205     XercesDOM_TextHack(const ParentType&    theSource);
    00206
    00207     ~XercesDOM_TextHack();
    00208
    00209
    00210     const DOMStringType
    00211     getNodeNameImpl() const;
    00212
    00213     const DOMStringType
    00214     getNodeValueImpl() const;
    00215
    00216     const DOMStringType
    00217     getNamespaceURIImpl() const;
    00218
    00219     const DOMStringType
    00220     getPrefixImpl() const;
    00221
    00222     const DOMStringType
    00223     getLocalNameImpl() const;
    00224
    00225     const DOMStringType
    00226     getDataImpl() const;
    00227
    00228     TextImplType*
    00229     getImpl() const
    00230     {
    00231 #if defined(XALAN_OLD_STYLE_CASTS)
    00232         return (TextImplType*)fImpl;
    00233 #else
    00234         return reinterpret_cast<TextImplType*>(fImpl);
    00235 #endif
    00236     }
    00237
    00238     static TextImplType*
    00239     getImpl(const ParentType&   theNode)
    00240     {
    00241 #if defined(XALAN_OLD_STYLE_CASTS)
    00242         return ((const XercesDOM_TextHack&)theNode).getImpl();
    00243 #else
    00244         return static_cast<const XercesDOM_TextHack&>(theNode).getImpl();
    00245 #endif
    00246     }
    00247 };
    00248
    00249
    00250
    00251 XALAN_CPP_NAMESPACE_END
    00252
    00253
    00254
    00255 #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++ XSLT Processor Version 1.6 Copyright © 2000, 2001, 2002, 2003 The Apache Software Foundation. All Rights Reserved.