Xalan-C++ API Reference 1.12.0
XercesNamedNodeMapBridge.hpp
Go to the documentation of this file.
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18#if !defined(XERCESNAMEDNODEMAPBRIDGE_HEADER_GUARD_1357924680)
19#define XERCESNAMEDNODEMAPBRIDGE_HEADER_GUARD_1357924680
20
21
22
24
25
26
27#if XERCES_VERSION_MAJOR >= 2
28#include <xercesc/dom/deprecated/DOM_NamedNodeMap.hpp>
29#else
30#include <xercesc/dom/DOM_NamedNodeMap.hpp>
31#endif
32
33
34
36
37
38
39namespace XALAN_CPP_NAMESPACE {
40
41
42
43class XercesBridgeNavigator;
44class XercesNodeBridge;
45
46
47/**
48 * This class is deprecated.
49 *
50 * @deprecated This class is part of the deprecated Xerces DOM bridge.
51 */
53{
54public:
55
56 typedef xercesc::DOM_NamedNodeMap DOM_NamedNodeMapType;
57
61
62 virtual
64
65 /** @name Set functions. */
66 //@{
67
68 /**
69 * Adds a node using its <code>nodeName</code> attribute.
70 *
71 * <br>As the <code>nodeName</code> attribute is used to derive the name
72 * which the node must be stored under, multiple nodes of certain types
73 * (those that have a "special" string value) cannot be stored as the names
74 * would clash. This is seen as preferable to allowing nodes to be aliased.
75 * @param arg A node to store in a named node map. The node will later be
76 * accessible using the value of the <code>nodeName</code> attribute of
77 * the node. If a node with that name is already present in the map, it
78 * is replaced by the new one.
79 * @return If the new <code>Node</code> replaces an existing node the
80 * replaced <code>Node</code> is returned,
81 * otherwise <code>null</code> is returned.
82 * @exception DOMException
83 * WRONG_DOCUMENT_ERR: Raised if <code>arg</code> was created from a
84 * different document than the one that created the
85 * <code>NamedNodeMap</code>.
86 * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this
87 * <code>NamedNodeMap</code> is readonly.
88 * <br>INUSE_ATTRIBUTE_ERR: Raised if <code>arg</code> is an
89 * <code>Attr</code> that is already an attribute of another
90 * <code>Element</code> object. The DOM user must explicitly clone
91 * <code>Attr</code> nodes to re-use them in other elements.
92 */
93 virtual XalanNode*
95
96 /**
97 * Returns the <code>index</code>th item in the map.
98 *
99 * If <code>index</code>
100 * is greater than or equal to the number of nodes in the map, this returns
101 * <code>null</code>.
102 * @param index Index into the map.
103 * @return The node at the <code>index</code>th position in the
104 * <code>NamedNodeMap</code>, or <code>null</code> if that is not a valid
105 * index.
106 */
107 virtual XalanNode*
108 item(unsigned int index) const;
109
110 //@}
111 /** @name Get functions. */
112 //@{
113
114 /**
115 * Retrieves a node specified by name.
116 *
117 * @param name The <code>nodeName</code> of a node to retrieve.
118 * @return A <code>DOM_Node</code> (of any type) with the specified <code>nodeName</code>, or
119 * <code>null</code> if it does not identify any node in
120 * the map.
121 */
122 virtual XalanNode*
124
125 /**
126 * The number of nodes in the map.
127 *
128 * The range of valid child node indices is
129 * 0 to <code>length-1</code> inclusive.
130 */
131 virtual unsigned int
132 getLength() const;
133
134 //@}
135 /** @name Functions to change the node collection. */
136 //@{
137
138 /**
139 * Removes a node specified by name.
140 *
141 * If the removed node is an
142 * <code>Attr</code> with a default value it is immediately replaced.
143 * @param name The <code>nodeName</code> of a node to remove.
144 * @return The node removed from the map or <code>null</code> if no node
145 * with such a name exists.
146 * @exception DOMException
147 * NOT_FOUND_ERR: Raised if there is no node named <code>name</code> in
148 * the map.
149 * <br>
150 * NO_MODIFICATION_ALLOWED_ERR: Raised if this <code>NamedNodeMap</code>
151 * is readonly.
152 */
153 virtual XalanNode*
155
156 //@}
157 /** @name Functions introduced in DOM Level 2. */
158 //@{
159
160 /**
161 * Retrieves a node specified by local name and namespace URI.
162 *
163 * @param namespaceURI The <em>namespace URI</em> of
164 * the node to retrieve.
165 * @param localName The <em>local name</em> of the node to retrieve.
166 * @return A <code>DOM_Node</code> (of any type) with the specified
167 * local name and namespace URI, or <code>null</code> if they do not
168 * identify any node in the map.
169 */
170 virtual XalanNode*
173 const XalanDOMString& localName) const;
174
175 /**
176 * Adds a node using its <CODE>namespaceURI</CODE> and <CODE>localName</CODE>.
177 * @param arg A node to store in a named node map. The node will later be
178 * accessible using the value of the <CODE>namespaceURI</CODE> and
179 * <CODE>localName</CODE> attribute of the node. If a node with those
180 * namespace URI and local name is already present in the map, it is
181 * replaced by the new one.
182 * @return If the new <code>Node</code> replaces an existing node the
183 * replaced <code>Node</code> is returned,
184 * otherwise <code>null</code> is returned.
185 * @exception DOMException
186 * WRONG_DOCUMENT_ERR: Raised if <code>arg</code> was created from a
187 * different document than the one that created the
188 * <code>NamedNodeMap</code>.
189 * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this
190 * <code>NamedNodeMap</code> is readonly.
191 * <br>INUSE_ATTRIBUTE_ERR: Raised if <code>arg</code> is an
192 * <code>Attr</code> that is already an attribute of another
193 * <code>Element</code> object. The DOM user must explicitly clone
194 * <code>Attr</code> nodes to re-use them in other elements.
195 */
196 virtual XalanNode*
198
199 /**
200 * Removes a node specified by local name and namespace URI.
201 *
202 * @param namespaceURI The <em>namespace URI</em> of
203 * the node to remove.
204 * @param localName The <em>local name</em> of the
205 * node to remove. When this <code>DOM_NamedNodeMap</code> contains the
206 * attributes attached to an element, as returned by the attributes
207 * attribute of the <code>DOM_Node</code> interface, if the removed
208 * attribute is known to have a default value, an attribute
209 * immediately appears containing the default value
210 * as well as the corresponding namespace URI, local name, and prefix.
211 * @return The node removed from the map if a node with such a local name
212 * and namespace URI exists.
213 * @exception DOMException
214 * NOT_FOUND_ERR: Raised if there is no node named <code>name</code> in
215 * the map.
216 * <br>
217 * NO_MODIFICATION_ALLOWED_ERR: Raised if this <code>NamedNodeMap</code>
218 * is readonly.
219 */
220 virtual XalanNode*
224
225 //@}
226
227private:
228
229 // Not implemented...
231
233 operator=(const XercesNamedNodeMapBridge& theRHS);
234
235 bool
237
238
239 // $$$ ToDo: Eventually, this will not need to be mutable.
240 mutable DOM_NamedNodeMapType m_xercesNamedNodeMap;
241
242 const XercesBridgeNavigator& m_navigator;
243};
244
245
246
247}
248
249
250
251#endif // !defined(XERCESNAMEDNODEMAPBRIDGE_HEADER_GUARD_1357924680)
#define XALAN_CPP_NAMESPACE
Xalan-C++ namespace, including major and minor version.
#define XALAN_XERCESPARSERLIAISON_EXPORT
virtual XalanNode * removeNamedItemNS(const XalanDOMString &namespaceURI, const XalanDOMString &localName)
Removes a node specified by local name and namespace URI.
XercesNamedNodeMapBridge(const DOM_NamedNodeMapType &theXercesNamedNodeMap, const XercesBridgeNavigator &theNavigator)
virtual XalanNode * setNamedItemNS(XalanNode *arg)
Adds a node using its namespaceURI and localName.
virtual XalanNode * removeNamedItem(const XalanDOMString &name)
Removes a node specified by name.
virtual XalanNode * setNamedItem(XalanNode *arg)
Adds a node using its nodeName attribute.
virtual XalanNode * item(unsigned int index) const
Returns the indexth item in the map.
virtual XalanNode * getNamedItem(const XalanDOMString &name) const
Retrieves a node specified by name.
virtual unsigned int getLength() const
The number of nodes in the map.
virtual XalanNode * getNamedItemNS(const XalanDOMString &namespaceURI, const XalanDOMString &localName) const
Retrieves a node specified by local name and namespace URI.
xercesc::DOM_NamedNodeMap DOM_NamedNodeMapType
bool operator==(const XalanVector< Type > &theLHS, const XalanVector< Type > &theRHS)