source: NonGTP/Xerces/xercesc/dom/impl/DOMAttrMapImpl.hpp @ 188

Revision 188, 5.1 KB checked in by mattausch, 19 years ago (diff)

added xercesc to support

Line 
1#ifndef DOMAttrMapImpl_HEADER_GUARD_
2#define DOMAttrMapImpl_HEADER_GUARD_
3
4/*
5 * The Apache Software License, Version 1.1
6 *
7 * Copyright (c) 2001-2002 The Apache Software Foundation.  All rights
8
9 * reserved.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
14 *
15 * 1. Redistributions of source code must retain the above copyright
16 *    notice, this list of conditions and the following disclaimer.
17 *
18 * 2. Redistributions in binary form must reproduce the above copyright
19 *    notice, this list of conditions and the following disclaimer in
20 *    the documentation and/or other materials provided with the
21 *    distribution.
22 *
23 * 3. The end-user documentation included with the redistribution,
24 *    if any, must include the following acknowledgment:
25 *       "This product includes software developed by the
26 *        Apache Software Foundation (http://www.apache.org/)."
27 *    Alternately, this acknowledgment may appear in the software itself,
28 *    if and wherever such third-party acknowledgments normally appear.
29 *
30 * 4. The names "Xerces" and "Apache Software Foundation" must
31 *    not be used to endorse or promote products derived from this
32 *    software without prior written permission. For written
33 *    permission, please contact apache\@apache.org.
34 *
35 * 5. Products derived from this software may not be called "Apache",
36 *    nor may "Apache" appear in their name, without prior written
37 *    permission of the Apache Software Foundation.
38 *
39 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
40 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
41 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
42 * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
43 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
44 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
45 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
46 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
47 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
48 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
49 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
50 * SUCH DAMAGE.
51 * ====================================================================
52 *
53 * This software consists of voluntary contributions made by many
54 * individuals on behalf of the Apache Software Foundation, and was
55 * originally based on software copyright (c) 2001, International
56 * Business Machines, Inc., http://www.ibm.com .  For more information
57 * on the Apache Software Foundation, please see
58 * <http://www.apache.org/>.
59 */
60
61/*
62 * $Id: DOMAttrMapImpl.hpp,v 1.6 2004/01/29 11:44:26 cargilld Exp $
63 */
64
65//
66//  This file is part of the internal implementation of the C++ XML DOM.
67//  It should NOT be included or used directly by application programs.
68//
69//  Applications should include the file <xercesc/dom/DOM.hpp> for the entire
70//  DOM API, or xercesc/dom/DOM*.hpp for individual DOM classes, where the class
71//  name is substituded for the *.
72//
73
74#include <xercesc/util/XercesDefs.hpp>
75#include "DOMNamedNodeMapImpl.hpp"
76
77XERCES_CPP_NAMESPACE_BEGIN
78
79
80class DOMNode;
81class DOMNamedNodeMap;
82
83class CDOM_EXPORT DOMAttrMapImpl : public DOMNamedNodeMapImpl
84{
85private:
86    bool attrDefaults;
87
88public:
89    DOMAttrMapImpl(DOMNode *ownerNod);
90
91    // revisit.  This "copy" constructor is used for cloning an Element with Attributes,
92    //                and for setting up default attributes.  It's probably not right
93    //                for one or the other or both.
94    DOMAttrMapImpl(DOMNode *ownerNod, const DOMNamedNodeMapImpl *defaults);
95    DOMAttrMapImpl();
96
97    virtual ~DOMAttrMapImpl();
98    virtual DOMAttrMapImpl *cloneAttrMap(DOMNode *ownerNode);
99    virtual bool hasDefaults();
100    virtual void hasDefaults(bool value);
101
102    virtual DOMNode *setNamedItem(DOMNode *arg);
103    virtual DOMNode *setNamedItemNS(DOMNode *arg);
104    virtual DOMNode *removeNamedItem(const XMLCh *name);
105    virtual DOMNode *removeNamedItemNS(const XMLCh *namespaceURI, const XMLCh *localName);
106    virtual DOMNode *removeNamedItemAt(XMLSize_t index);
107
108    void reconcileDefaultAttributes(const DOMAttrMapImpl* defaults);
109    void moveSpecifiedAttributes(DOMAttrMapImpl* srcmap);
110
111private:
112    // -----------------------------------------------------------------------
113    // Unimplemented constructors and operators
114    // -----------------------------------------------------------------------
115    DOMAttrMapImpl(const DOMAttrMapImpl &);
116    DOMAttrMapImpl & operator = (const DOMAttrMapImpl &);
117};
118
119// ---------------------------------------------------------------------------
120//  DOMAttrMapImpl: Getters & Setters
121// ---------------------------------------------------------------------------
122
123inline bool DOMAttrMapImpl::hasDefaults()
124{
125    return attrDefaults;
126}
127
128inline void DOMAttrMapImpl::hasDefaults(bool value)
129{
130    attrDefaults = value;
131}
132
133XERCES_CPP_NAMESPACE_END
134
135
136#endif
Note: See TracBrowser for help on using the repository browser.