author | tbell |
Mon, 04 May 2009 21:10:41 -0700 | |
changeset 2719 | 99d59312294b |
parent 2678 | 57cf2a1c1a05 |
child 3530 | 18fb7507984b |
permissions | -rw-r--r-- |
8 | 1 |
/* |
2678
57cf2a1c1a05
6831313: update jaxws in OpenJDK7 to 2.1 plus bug fixes from OpenJDK 6
tbell
parents:
8
diff
changeset
|
2 |
* Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. |
8 | 3 |
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 |
* |
|
5 |
* This code is free software; you can redistribute it and/or modify it |
|
6 |
* under the terms of the GNU General Public License version 2 only, as |
|
7 |
* published by the Free Software Foundation. Sun designates this |
|
8 |
* particular file as subject to the "Classpath" exception as provided |
|
9 |
* by Sun in the LICENSE file that accompanied this code. |
|
10 |
* |
|
11 |
* This code is distributed in the hope that it will be useful, but WITHOUT |
|
12 |
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
13 |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
14 |
* version 2 for more details (a copy is included in the LICENSE file that |
|
15 |
* accompanied this code). |
|
16 |
* |
|
17 |
* You should have received a copy of the GNU General Public License version |
|
18 |
* 2 along with this work; if not, write to the Free Software Foundation, |
|
19 |
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
|
20 |
* |
|
21 |
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, |
|
22 |
* CA 95054 USA or visit www.sun.com if you need additional information or |
|
23 |
* have any questions. |
|
24 |
*/ |
|
2678
57cf2a1c1a05
6831313: update jaxws in OpenJDK7 to 2.1 plus bug fixes from OpenJDK 6
tbell
parents:
8
diff
changeset
|
25 |
/* |
2719 | 26 |
* |
27 |
* |
|
28 |
* |
|
2678
57cf2a1c1a05
6831313: update jaxws in OpenJDK7 to 2.1 plus bug fixes from OpenJDK 6
tbell
parents:
8
diff
changeset
|
29 |
*/ |
57cf2a1c1a05
6831313: update jaxws in OpenJDK7 to 2.1 plus bug fixes from OpenJDK 6
tbell
parents:
8
diff
changeset
|
30 |
|
57cf2a1c1a05
6831313: update jaxws in OpenJDK7 to 2.1 plus bug fixes from OpenJDK 6
tbell
parents:
8
diff
changeset
|
31 |
|
8 | 32 |
package com.sun.xml.internal.messaging.saaj.soap.name; |
33 |
||
34 |
import java.util.logging.Level; |
|
35 |
import java.util.logging.Logger; |
|
36 |
||
37 |
import javax.xml.namespace.QName; |
|
38 |
import javax.xml.soap.Name; |
|
39 |
import javax.xml.soap.SOAPConstants; |
|
40 |
||
41 |
import com.sun.org.apache.xerces.internal.xni.NamespaceContext; |
|
42 |
import org.w3c.dom.Element; |
|
43 |
||
44 |
import com.sun.xml.internal.messaging.saaj.soap.impl.ElementImpl; |
|
45 |
import com.sun.xml.internal.messaging.saaj.util.LogDomainConstants; |
|
46 |
||
47 |
public class NameImpl implements Name { |
|
48 |
public static final String XML_NAMESPACE_PREFIX = "xml"; |
|
49 |
public static final String XML_SCHEMA_NAMESPACE_PREFIX = "xs"; |
|
50 |
public static final String SOAP_ENVELOPE_PREFIX = "SOAP-ENV"; |
|
51 |
||
52 |
public static final String XML_NAMESPACE = |
|
53 |
"http://www.w3.org/XML/1998/namespace"; |
|
54 |
public static final String SOAP11_NAMESPACE = |
|
55 |
SOAPConstants.URI_NS_SOAP_ENVELOPE; |
|
56 |
public static final String SOAP12_NAMESPACE = |
|
57 |
SOAPConstants.URI_NS_SOAP_1_2_ENVELOPE; |
|
58 |
public static final String XML_SCHEMA_NAMESPACE = |
|
59 |
"http://www.w3.org/2001/XMLSchema"; |
|
60 |
||
61 |
protected String uri = ""; |
|
62 |
protected String localName = ""; |
|
63 |
protected String prefix = ""; |
|
64 |
private String qualifiedName = null; |
|
65 |
||
2719 | 66 |
protected static final Logger log = |
8 | 67 |
Logger.getLogger(LogDomainConstants.NAMING_DOMAIN, |
68 |
"com.sun.xml.internal.messaging.saaj.soap.name.LocalStrings"); |
|
69 |
||
70 |
protected NameImpl(String name) { |
|
71 |
this.localName = name == null ? "" : name; |
|
72 |
} |
|
73 |
||
74 |
protected NameImpl(String name, String prefix, String uri) { |
|
75 |
this.uri = uri == null ? "" : uri; |
|
76 |
this.localName = name == null ? "" : name; |
|
77 |
this.prefix = prefix == null ? "" : prefix; |
|
78 |
||
79 |
if (this.prefix.equals("xmlns") && this.uri.equals("")) { |
|
80 |
this.uri = NamespaceContext.XMLNS_URI; |
|
81 |
} |
|
82 |
if (this.uri.equals(NamespaceContext.XMLNS_URI) && this.prefix.equals("")) { |
|
83 |
this.prefix = "xmlns"; |
|
84 |
} |
|
85 |
} |
|
86 |
||
87 |
public static Name convertToName(QName qname) { |
|
88 |
return new NameImpl(qname.getLocalPart(), |
|
89 |
qname.getPrefix(), |
|
90 |
qname.getNamespaceURI()); |
|
91 |
} |
|
92 |
||
93 |
public static QName convertToQName(Name name) { |
|
94 |
return new QName(name.getURI(), |
|
95 |
name.getLocalName(), |
|
96 |
name.getPrefix()); |
|
97 |
} |
|
98 |
||
99 |
public static NameImpl createFromUnqualifiedName(String name) { |
|
100 |
return new NameImpl(name); |
|
101 |
} |
|
102 |
||
103 |
public static Name createFromTagName(String tagName) { |
|
104 |
return createFromTagAndUri(tagName, ""); |
|
105 |
} |
|
106 |
||
107 |
public static Name createFromQualifiedName( |
|
108 |
String qualifiedName, |
|
109 |
String uri) { |
|
110 |
return createFromTagAndUri(qualifiedName, uri); |
|
111 |
} |
|
112 |
||
113 |
protected static Name createFromTagAndUri(String tagName, String uri) { |
|
114 |
if (tagName == null) { |
|
115 |
log.severe("SAAJ0201.name.not.created.from.null.tag"); |
|
116 |
throw new IllegalArgumentException("Cannot create a name from a null tag."); |
|
117 |
} |
|
118 |
int index = tagName.indexOf(':'); |
|
119 |
if (index < 0) { |
|
120 |
return new NameImpl(tagName, "", uri); |
|
121 |
} else { |
|
122 |
return new NameImpl( |
|
123 |
tagName.substring(index + 1), |
|
124 |
tagName.substring(0, index), |
|
125 |
uri); |
|
126 |
} |
|
127 |
} |
|
128 |
||
129 |
protected static int getPrefixSeparatorIndex(String qualifiedName) { |
|
130 |
int index = qualifiedName.indexOf(':'); |
|
131 |
if (index < 0) { |
|
132 |
log.log( |
|
133 |
Level.SEVERE, |
|
134 |
"SAAJ0202.name.invalid.arg.format", |
|
135 |
new String[] { qualifiedName }); |
|
136 |
throw new IllegalArgumentException( |
|
137 |
"Argument \"" |
|
138 |
+ qualifiedName |
|
139 |
+ "\" must be of the form: \"prefix:localName\""); |
|
140 |
} |
|
141 |
return index; |
|
142 |
} |
|
143 |
||
144 |
public static String getPrefixFromQualifiedName(String qualifiedName) { |
|
145 |
return qualifiedName.substring( |
|
146 |
0, |
|
147 |
getPrefixSeparatorIndex(qualifiedName)); |
|
148 |
} |
|
149 |
||
150 |
public static String getLocalNameFromQualifiedName(String qualifiedName) { |
|
151 |
return qualifiedName.substring( |
|
152 |
getPrefixSeparatorIndex(qualifiedName) + 1); |
|
153 |
} |
|
154 |
||
155 |
public static String getPrefixFromTagName(String tagName) { |
|
156 |
if (isQualified(tagName)) { |
|
157 |
return getPrefixFromQualifiedName(tagName); |
|
158 |
} |
|
159 |
return ""; |
|
160 |
} |
|
161 |
||
162 |
public static String getLocalNameFromTagName(String tagName) { |
|
163 |
if (isQualified(tagName)) { |
|
164 |
return getLocalNameFromQualifiedName(tagName); |
|
165 |
} |
|
166 |
return tagName; |
|
167 |
} |
|
168 |
||
169 |
public static boolean isQualified(String tagName) { |
|
170 |
return tagName.indexOf(':') >= 0; |
|
171 |
} |
|
172 |
||
173 |
public static NameImpl create(String name, String prefix, String uri) { |
|
174 |
if (prefix == null) |
|
175 |
prefix = ""; |
|
176 |
if (uri == null) |
|
177 |
uri = ""; |
|
178 |
if (name == null) |
|
179 |
name = ""; |
|
180 |
||
181 |
if (!uri.equals("") && !name.equals("")) { |
|
182 |
if (uri.equals(NameImpl.SOAP11_NAMESPACE)) { |
|
183 |
if (name.equalsIgnoreCase("Envelope")) |
|
184 |
return createEnvelope1_1Name(prefix); |
|
185 |
else if (name.equalsIgnoreCase("Header")) |
|
186 |
return createHeader1_1Name(prefix); |
|
187 |
else if (name.equalsIgnoreCase("Body")) |
|
188 |
return createBody1_1Name(prefix); |
|
189 |
else if (name.equalsIgnoreCase("Fault")) |
|
190 |
return createFault1_1Name(prefix); |
|
191 |
else |
|
192 |
return new SOAP1_1Name(name, prefix); |
|
193 |
} else if (uri.equals(SOAP12_NAMESPACE)) { |
|
194 |
if (name.equalsIgnoreCase("Envelope")) |
|
195 |
return createEnvelope1_2Name(prefix); |
|
196 |
else if (name.equalsIgnoreCase("Header")) |
|
197 |
return createHeader1_2Name(prefix); |
|
198 |
else if (name.equalsIgnoreCase("Body")) |
|
199 |
return createBody1_2Name(prefix); |
|
200 |
else if ( |
|
201 |
name.equals("Fault") |
|
202 |
|| name.equals("Reason") |
|
203 |
|| name.equals("Detail")) |
|
204 |
return createFault1_2Name(name, prefix); |
|
205 |
else if (name.equals("Code") || name.equals("Subcode")) |
|
206 |
return createCodeSubcode1_2Name(prefix, name); |
|
207 |
else |
|
208 |
return new SOAP1_2Name(name, prefix); |
|
209 |
} |
|
210 |
||
211 |
} |
|
212 |
return new NameImpl(name, prefix, uri); |
|
213 |
} |
|
214 |
||
215 |
public static String createQName(String prefix, String localName) { |
|
216 |
if (prefix == null || prefix.equals("")) { |
|
217 |
return localName; |
|
218 |
} |
|
219 |
return prefix + ":" + localName; |
|
220 |
} |
|
221 |
||
222 |
public boolean equals(Object obj) { |
|
223 |
if (!(obj instanceof Name)) { |
|
224 |
return false; |
|
225 |
} |
|
226 |
||
227 |
Name otherName = (Name) obj; |
|
228 |
||
229 |
if (!uri.equals(otherName.getURI())) { |
|
230 |
return false; |
|
231 |
} |
|
232 |
||
233 |
if (!localName.equals(otherName.getLocalName())) { |
|
234 |
return false; |
|
235 |
} |
|
236 |
||
237 |
return true; |
|
238 |
} |
|
239 |
||
240 |
/** |
|
241 |
* Get the local name part of this XML Name. |
|
242 |
* |
|
243 |
* @return a string for the local name. |
|
244 |
*/ |
|
245 |
public String getLocalName() { |
|
246 |
return localName; |
|
247 |
} |
|
248 |
||
249 |
/* getQualifiedName is inherited from QName */ |
|
250 |
||
251 |
/** |
|
252 |
* Returns the prefix associated with the namespace of the name. |
|
253 |
* |
|
254 |
* @return the prefix as a string. |
|
255 |
*/ |
|
256 |
public String getPrefix() { |
|
257 |
return prefix; |
|
258 |
} |
|
259 |
||
260 |
/** |
|
261 |
* Returns the URI associated of the namespace. |
|
262 |
* |
|
263 |
* @return the uri as a string. |
|
264 |
*/ |
|
265 |
public String getURI() { |
|
266 |
return uri; |
|
267 |
} |
|
268 |
||
269 |
/** |
|
270 |
* Returns a String version of the name suitable for use in an XML document. |
|
271 |
*/ |
|
272 |
public String getQualifiedName() { |
|
273 |
if (qualifiedName == null) { |
|
274 |
if (prefix != null && prefix.length() > 0) { |
|
275 |
qualifiedName = prefix + ":" + localName; |
|
276 |
} else { |
|
277 |
qualifiedName = localName; |
|
278 |
} |
|
279 |
} |
|
280 |
return qualifiedName; |
|
281 |
} |
|
282 |
||
283 |
/** |
|
284 |
* Create a name object for a SOAP1.1 Envelope. |
|
285 |
*/ |
|
286 |
public static NameImpl createEnvelope1_1Name(String prefix) { |
|
287 |
return new Envelope1_1Name(prefix); |
|
288 |
} |
|
289 |
||
290 |
/** |
|
291 |
* Create a name object for a SOAP1.2 Envelope. |
|
292 |
*/ |
|
293 |
public static NameImpl createEnvelope1_2Name(String prefix) { |
|
294 |
return new Envelope1_2Name(prefix); |
|
295 |
} |
|
296 |
||
297 |
/** |
|
298 |
* Create a name object for a SOAP1.1 Header. |
|
299 |
*/ |
|
300 |
public static NameImpl createHeader1_1Name(String prefix) { |
|
301 |
return new Header1_1Name(prefix); |
|
302 |
} |
|
303 |
||
304 |
/** |
|
305 |
* Create a name object for a SOAP1.2 Header. |
|
306 |
*/ |
|
307 |
public static NameImpl createHeader1_2Name(String prefix) { |
|
308 |
return new Header1_2Name(prefix); |
|
309 |
} |
|
310 |
||
311 |
/** |
|
312 |
* Create a name object for a SOAP1.1 Body. |
|
313 |
*/ |
|
314 |
public static NameImpl createBody1_1Name(String prefix) { |
|
315 |
return new Body1_1Name(prefix); |
|
316 |
} |
|
317 |
||
318 |
/** |
|
319 |
* Create a name object for a SOAP1.2 Body. |
|
320 |
*/ |
|
321 |
public static NameImpl createBody1_2Name(String prefix) { |
|
322 |
return new Body1_2Name(prefix); |
|
323 |
} |
|
324 |
||
325 |
/** |
|
326 |
* Create a name object for a SOAP1.1 Fault. |
|
327 |
*/ |
|
328 |
public static NameImpl createFault1_1Name(String prefix) { |
|
329 |
return new Fault1_1Name(prefix); |
|
330 |
} |
|
331 |
||
332 |
/** |
|
333 |
* Create a name object for a SOAP1.2 NotUnderstood element. |
|
334 |
*/ |
|
335 |
public static NameImpl createNotUnderstood1_2Name(String prefix) { |
|
336 |
return new NotUnderstood1_2Name(prefix); |
|
337 |
} |
|
338 |
||
339 |
/** |
|
340 |
* Create a name object for a SOAP1.2 Upgrade element. |
|
341 |
*/ |
|
342 |
public static NameImpl createUpgrade1_2Name(String prefix) { |
|
343 |
return new Upgrade1_2Name(prefix); |
|
344 |
} |
|
345 |
||
346 |
/** |
|
347 |
* Create a name object for a SOAP1.2 SupportedEnvelope Upgrade element. |
|
348 |
*/ |
|
349 |
public static NameImpl createSupportedEnvelope1_2Name(String prefix) { |
|
350 |
return new SupportedEnvelope1_2Name(prefix); |
|
351 |
} |
|
352 |
||
353 |
/** |
|
354 |
* Create a name object for a SOAP1.2 |
|
355 |
* Fault, Reason or Detail. |
|
356 |
* |
|
357 |
* @param localName Local Name of element |
|
358 |
*/ |
|
359 |
public static NameImpl createFault1_2Name( |
|
360 |
String localName, |
|
361 |
String prefix) { |
|
362 |
return new Fault1_2Name(localName, prefix); |
|
363 |
} |
|
364 |
||
365 |
/** |
|
366 |
* Create a name object for a SOAP1.2 Fault/Code or Subcode. |
|
367 |
* |
|
368 |
* @param localName Either "Code" or "Subcode" |
|
369 |
*/ |
|
370 |
public static NameImpl createCodeSubcode1_2Name( |
|
371 |
String prefix, |
|
372 |
String localName) { |
|
373 |
return new CodeSubcode1_2Name(localName, prefix); |
|
374 |
} |
|
375 |
||
376 |
/** |
|
377 |
* Create a name object for a SOAP1.1 Fault Detail. |
|
378 |
*/ |
|
379 |
public static NameImpl createDetail1_1Name() { |
|
380 |
return new Detail1_1Name(); |
|
381 |
} |
|
382 |
||
383 |
public static NameImpl createDetail1_1Name(String prefix) { |
|
384 |
return new Detail1_1Name(prefix); |
|
385 |
} |
|
386 |
||
387 |
public static NameImpl createFaultElement1_1Name(String localName) { |
|
388 |
return new FaultElement1_1Name(localName); |
|
389 |
} |
|
390 |
||
391 |
public static NameImpl createFaultElement1_1Name(String localName, |
|
392 |
String prefix) { |
|
393 |
return new FaultElement1_1Name(localName, prefix); |
|
394 |
} |
|
395 |
||
396 |
public static NameImpl createSOAP11Name(String string) { |
|
397 |
return new SOAP1_1Name(string, null); |
|
398 |
} |
|
399 |
public static NameImpl createSOAP12Name(String string) { |
|
400 |
return new SOAP1_2Name(string, null); |
|
401 |
} |
|
402 |
||
403 |
public static NameImpl createSOAP12Name(String localName, String prefix) { |
|
404 |
return new SOAP1_2Name(localName, prefix); |
|
405 |
} |
|
406 |
||
407 |
public static NameImpl createXmlName(String localName) { |
|
408 |
return new NameImpl(localName, XML_NAMESPACE_PREFIX, XML_NAMESPACE); |
|
409 |
} |
|
410 |
||
411 |
public static Name copyElementName(Element element) { |
|
412 |
String localName = element.getLocalName(); |
|
413 |
String prefix = element.getPrefix(); |
|
414 |
String uri = element.getNamespaceURI(); |
|
415 |
return create(localName, prefix, uri); |
|
416 |
} |
|
417 |
||
418 |
||
419 |
static class SOAP1_1Name extends NameImpl { |
|
420 |
SOAP1_1Name(String name, String prefix) { |
|
421 |
super( |
|
422 |
name, |
|
423 |
(prefix == null || prefix.equals("")) |
|
424 |
? NameImpl.SOAP_ENVELOPE_PREFIX |
|
425 |
: prefix, |
|
426 |
NameImpl.SOAP11_NAMESPACE); |
|
427 |
} |
|
428 |
} |
|
429 |
||
430 |
static class Envelope1_1Name extends SOAP1_1Name { |
|
431 |
Envelope1_1Name(String prefix) { |
|
432 |
super("Envelope", prefix); |
|
433 |
} |
|
434 |
} |
|
435 |
||
436 |
static class Header1_1Name extends SOAP1_1Name { |
|
437 |
Header1_1Name(String prefix) { |
|
438 |
super("Header", prefix); |
|
439 |
} |
|
440 |
} |
|
441 |
||
442 |
static class Body1_1Name extends SOAP1_1Name { |
|
443 |
Body1_1Name(String prefix) { |
|
444 |
super("Body", prefix); |
|
445 |
} |
|
446 |
} |
|
447 |
||
448 |
static class Fault1_1Name extends NameImpl { |
|
449 |
Fault1_1Name(String prefix) { |
|
450 |
super( |
|
451 |
"Fault", |
|
452 |
(prefix == null || prefix.equals("")) |
|
453 |
? SOAP_ENVELOPE_PREFIX |
|
454 |
: prefix, |
|
455 |
SOAP11_NAMESPACE); |
|
456 |
} |
|
457 |
} |
|
458 |
||
459 |
static class Detail1_1Name extends NameImpl { |
|
460 |
Detail1_1Name() { |
|
461 |
super("detail"); |
|
462 |
} |
|
463 |
||
464 |
Detail1_1Name(String prefix) { |
|
465 |
super("detail", prefix, ""); |
|
466 |
} |
|
467 |
} |
|
468 |
||
469 |
static class FaultElement1_1Name extends NameImpl { |
|
470 |
FaultElement1_1Name(String localName) { |
|
471 |
super(localName); |
|
472 |
} |
|
473 |
||
474 |
FaultElement1_1Name(String localName, String prefix) { |
|
475 |
super(localName, prefix, ""); |
|
476 |
} |
|
477 |
} |
|
478 |
||
479 |
static class SOAP1_2Name extends NameImpl { |
|
480 |
SOAP1_2Name(String name, String prefix) { |
|
481 |
super( |
|
482 |
name, |
|
483 |
(prefix == null || prefix.equals("")) |
|
484 |
? SOAPConstants.SOAP_ENV_PREFIX |
|
485 |
: prefix, |
|
486 |
SOAP12_NAMESPACE); |
|
487 |
} |
|
488 |
} |
|
489 |
||
490 |
static class Envelope1_2Name extends SOAP1_2Name { |
|
491 |
Envelope1_2Name(String prefix) { |
|
492 |
super("Envelope", prefix); |
|
493 |
} |
|
494 |
} |
|
495 |
||
496 |
static class Header1_2Name extends SOAP1_2Name { |
|
497 |
Header1_2Name(String prefix) { |
|
498 |
super("Header", prefix); |
|
499 |
} |
|
500 |
} |
|
501 |
||
502 |
static class Body1_2Name extends SOAP1_2Name { |
|
503 |
Body1_2Name(String prefix) { |
|
504 |
super("Body", prefix); |
|
505 |
} |
|
506 |
} |
|
507 |
||
508 |
static class Fault1_2Name extends NameImpl { |
|
509 |
Fault1_2Name(String name, String prefix) { |
|
510 |
super( |
|
511 |
(name == null || name.equals("")) ? "Fault" : name, |
|
512 |
(prefix == null || prefix.equals("")) |
|
513 |
? SOAPConstants.SOAP_ENV_PREFIX |
|
514 |
: prefix, |
|
515 |
SOAP12_NAMESPACE); |
|
516 |
} |
|
517 |
} |
|
518 |
||
519 |
static class NotUnderstood1_2Name extends NameImpl { |
|
520 |
NotUnderstood1_2Name(String prefix) { |
|
521 |
super( |
|
522 |
"NotUnderstood", |
|
523 |
(prefix == null || prefix.equals("")) |
|
524 |
? SOAPConstants.SOAP_ENV_PREFIX |
|
525 |
: prefix, |
|
526 |
SOAP12_NAMESPACE); |
|
527 |
} |
|
528 |
} |
|
529 |
||
530 |
static class Upgrade1_2Name extends NameImpl { |
|
531 |
Upgrade1_2Name(String prefix) { |
|
532 |
super( |
|
533 |
"Upgrade", |
|
534 |
(prefix == null || prefix.equals("")) |
|
535 |
? SOAPConstants.SOAP_ENV_PREFIX |
|
536 |
: prefix, |
|
537 |
SOAP12_NAMESPACE); |
|
538 |
} |
|
539 |
} |
|
540 |
||
541 |
static class SupportedEnvelope1_2Name extends NameImpl { |
|
542 |
SupportedEnvelope1_2Name(String prefix) { |
|
543 |
super( |
|
544 |
"SupportedEnvelope", |
|
545 |
(prefix == null || prefix.equals("")) |
|
546 |
? SOAPConstants.SOAP_ENV_PREFIX |
|
547 |
: prefix, |
|
548 |
SOAP12_NAMESPACE); |
|
549 |
} |
|
550 |
} |
|
551 |
||
552 |
static class CodeSubcode1_2Name extends SOAP1_2Name { |
|
553 |
CodeSubcode1_2Name(String prefix, String localName) { |
|
554 |
super(prefix, localName); |
|
555 |
} |
|
556 |
} |
|
557 |
||
558 |
} |