Skip to content

Package: NameImpl$Fault1_1Name

NameImpl$Fault1_1Name

nameinstructionbranchcomplexitylinemethod
NameImpl.Fault1_1Name(String)
M: 0 C: 14
100%
M: 1 C: 3
75%
M: 1 C: 2
67%
M: 0 C: 5
100%
M: 0 C: 1
100%

Coverage

1: /*
2: * Copyright (c) 1997, 2022 Oracle and/or its affiliates. All rights reserved.
3: *
4: * This program and the accompanying materials are made available under the
5: * terms of the Eclipse Distribution License v. 1.0, which is available at
6: * http://www.eclipse.org/org/documents/edl-v10.php.
7: *
8: * SPDX-License-Identifier: BSD-3-Clause
9: */
10:
11: package com.sun.xml.messaging.saaj.soap.name;
12:
13: import java.util.logging.Level;
14: import java.util.logging.Logger;
15:
16: import javax.xml.XMLConstants;
17: import javax.xml.namespace.QName;
18: import jakarta.xml.soap.Name;
19: import jakarta.xml.soap.SOAPConstants;
20:
21: //import com.sun.org.apache.xerces.internal.xni.NamespaceContext;
22: import org.w3c.dom.Element;
23: import com.sun.xml.messaging.saaj.util.LogDomainConstants;
24:
25: public class NameImpl implements Name {
26:
27: public static final String SOAP_ENVELOPE_PREFIX = "SOAP-ENV";
28: public static final String SOAP11_NAMESPACE = SOAPConstants.URI_NS_SOAP_ENVELOPE;
29: public static final String SOAP12_NAMESPACE = SOAPConstants.URI_NS_SOAP_1_2_ENVELOPE;
30:
31: protected String uri = "";
32: protected String localName = "";
33: protected String prefix = "";
34: private String qualifiedName = null;
35:
36: private static final Logger log =
37: Logger.getLogger(LogDomainConstants.NAMING_DOMAIN,
38: "com.sun.xml.messaging.saaj.soap.name.LocalStrings");
39:
40: protected NameImpl(String name) {
41: this.localName = name == null ? "" : name;
42: }
43:
44: protected NameImpl(String name, String prefix, String uri) {
45: this.uri = uri == null ? "" : uri;
46: this.localName = name == null ? "" : name;
47: this.prefix = prefix == null ? "" : prefix;
48:
49: if (XMLConstants.XMLNS_ATTRIBUTE.equals(this.prefix) && this.uri.equals("")) {
50: this.uri = XMLConstants.XMLNS_ATTRIBUTE_NS_URI;
51: }
52: if (XMLConstants.XMLNS_ATTRIBUTE_NS_URI.equals(this.uri) && this.prefix.equals("")) {
53: this.prefix = XMLConstants.XMLNS_ATTRIBUTE;
54: }
55: }
56:
57: public static Name convertToName(QName qname) {
58: return new NameImpl(qname.getLocalPart(),
59: qname.getPrefix(),
60: qname.getNamespaceURI());
61: }
62:
63: public static QName convertToQName(Name name) {
64: return new QName(name.getURI(),
65:                          name.getLocalName(),
66: name.getPrefix());
67: }
68:
69: public static NameImpl createFromUnqualifiedName(String name) {
70: return new NameImpl(name);
71: }
72:
73: public static Name createFromTagName(String tagName) {
74: return createFromTagAndUri(tagName, "");
75: }
76:
77: public static Name createFromQualifiedName(
78: String qualifiedName,
79: String uri) {
80: return createFromTagAndUri(qualifiedName, uri);
81: }
82:
83: protected static Name createFromTagAndUri(String tagName, String uri) {
84: if (tagName == null) {
85: log.severe("SAAJ0201.name.not.created.from.null.tag");
86: throw new IllegalArgumentException("Cannot create a name from a null tag.");
87: }
88: int index = tagName.indexOf(':');
89: if (index < 0) {
90: return new NameImpl(tagName, "", uri);
91: } else {
92: return new NameImpl(
93: tagName.substring(index + 1),
94: tagName.substring(0, index),
95: uri);
96: }
97: }
98:
99: protected static int getPrefixSeparatorIndex(String qualifiedName) {
100: int index = qualifiedName.indexOf(':');
101: if (index < 0) {
102: log.log(
103: Level.SEVERE,
104: "SAAJ0202.name.invalid.arg.format",
105: new String[] { qualifiedName.replaceAll("[\r\n]","") });
106: throw new IllegalArgumentException(
107: "Argument \""
108: + qualifiedName
109: + "\" must be of the form: \"prefix:localName\"");
110: }
111: return index;
112: }
113:
114: public static String getPrefixFromQualifiedName(String qualifiedName) {
115: return qualifiedName.substring(
116: 0,
117: getPrefixSeparatorIndex(qualifiedName));
118: }
119:
120: public static String getLocalNameFromQualifiedName(String qualifiedName) {
121: return qualifiedName.substring(
122: getPrefixSeparatorIndex(qualifiedName) + 1);
123: }
124:
125: public static String getPrefixFromTagName(String tagName) {
126: if (isQualified(tagName)) {
127: return getPrefixFromQualifiedName(tagName);
128: }
129: return "";
130: }
131:
132: public static String getLocalNameFromTagName(String tagName) {
133: if (isQualified(tagName)) {
134: return getLocalNameFromQualifiedName(tagName);
135: }
136: return tagName;
137: }
138:
139: public static boolean isQualified(String tagName) {
140: return tagName.indexOf(':') >= 0;
141: }
142:
143: public static NameImpl create(String name, String prefix, String uri) {
144: if (prefix == null)
145: prefix = "";
146: if (uri == null)
147: uri = "";
148: if (name == null)
149: name = "";
150:
151: if (!uri.equals("") && !name.equals("")) {
152: if (uri.equals(NameImpl.SOAP11_NAMESPACE)) {
153: if (name.equalsIgnoreCase("Envelope"))
154: return createEnvelope1_1Name(prefix);
155: else if (name.equalsIgnoreCase("Header"))
156: return createHeader1_1Name(prefix);
157: else if (name.equalsIgnoreCase("Body"))
158: return createBody1_1Name(prefix);
159: else if (name.equalsIgnoreCase("Fault"))
160: return createFault1_1Name(prefix);
161: else
162: return new SOAP1_1Name(name, prefix);
163: } else if (uri.equals(SOAP12_NAMESPACE)) {
164: if (name.equalsIgnoreCase("Envelope"))
165: return createEnvelope1_2Name(prefix);
166: else if (name.equalsIgnoreCase("Header"))
167: return createHeader1_2Name(prefix);
168: else if (name.equalsIgnoreCase("Body"))
169: return createBody1_2Name(prefix);
170: else if (
171: name.equals("Fault")
172: || name.equals("Reason")
173: || name.equals("Detail"))
174: return createFault1_2Name(name, prefix);
175: else if (name.equals("Code") || name.equals("Subcode"))
176: return createCodeSubcode1_2Name(prefix, name);
177: else
178: return new SOAP1_2Name(name, prefix);
179: }
180:
181: }
182: return new NameImpl(name, prefix, uri);
183: }
184:
185: public static String createQName(String prefix, String localName) {
186: if (prefix == null || prefix.equals("")) {
187: return localName;
188: }
189: return prefix + ":" + localName;
190: }
191:
192: @Override
193: public boolean equals(Object obj) {
194: if (!(obj instanceof Name)) {
195: return false;
196: }
197:
198: Name otherName = (Name) obj;
199:
200: if (!uri.equals(otherName.getURI())) {
201: return false;
202: }
203:
204: if (!localName.equals(otherName.getLocalName())) {
205: return false;
206: }
207:
208: return true;
209: }
210:
211: @Override
212: public int hashCode() {
213:         return localName.hashCode();
214: }
215:
216: /**
217: * Get the local name part of this XML Name.
218: *
219: * @return a string for the local name.
220: */
221: @Override
222: public String getLocalName() {
223: return localName;
224: }
225:
226: /* getQualifiedName is inherited from QName */
227:
228: /**
229: * Returns the prefix associated with the namespace of the name.
230: *
231: * @return the prefix as a string.
232: */
233: @Override
234: public String getPrefix() {
235: return prefix;
236: }
237:
238: /**
239: * Returns the URI associated of the namespace.
240: *
241: * @return the uri as a string.
242: */
243: @Override
244: public String getURI() {
245: return uri;
246: }
247:
248: /**
249: * Returns a String version of the name suitable for use in an XML document.
250: */
251: @Override
252: public String getQualifiedName() {
253: if (qualifiedName == null) {
254: if (prefix != null && prefix.length() > 0) {
255: qualifiedName = prefix + ":" + localName;
256: } else {
257: qualifiedName = localName;
258: }
259: }
260: return qualifiedName;
261: }
262:
263: /**
264: * Create a name object for a SOAP1.1 Envelope.
265: *
266: * @param prefix prefix
267: * @return Envelope Name
268: */
269: public static NameImpl createEnvelope1_1Name(String prefix) {
270: return new Envelope1_1Name(prefix);
271: }
272:
273: /**
274: * Create a name object for a SOAP1.2 Envelope.
275: *
276: * @param prefix prefix
277: * @return Envelope Name
278: */
279: public static NameImpl createEnvelope1_2Name(String prefix) {
280: return new Envelope1_2Name(prefix);
281: }
282:
283: /**
284: * Create a name object for a SOAP1.1 Header.
285: *
286: * @param prefix prefix
287: * @return Header Name
288: */
289: public static NameImpl createHeader1_1Name(String prefix) {
290: return new Header1_1Name(prefix);
291: }
292:
293: /**
294: * Create a name object for a SOAP1.2 Header.
295: *
296: * @param prefix prefix
297: * @return Header Name
298: */
299: public static NameImpl createHeader1_2Name(String prefix) {
300: return new Header1_2Name(prefix);
301: }
302:
303: /**
304: * Create a name object for a SOAP1.1 Body.
305: *
306: * @param prefix prefix
307: * @return Body Name
308: */
309: public static NameImpl createBody1_1Name(String prefix) {
310: return new Body1_1Name(prefix);
311: }
312:
313: /**
314: * Create a name object for a SOAP1.2 Body.
315: *
316: * @param prefix prefix
317: * @return Body Name
318: */
319: public static NameImpl createBody1_2Name(String prefix) {
320: return new Body1_2Name(prefix);
321: }
322:
323: /**
324: * Create a name object for a SOAP1.1 Fault.
325: *
326: * @param prefix prefix
327: * @return Fault Name
328: */
329: public static NameImpl createFault1_1Name(String prefix) {
330: return new Fault1_1Name(prefix);
331: }
332:
333: /**
334: * Create a name object for a SOAP1.2 NotUnderstood element.
335: *
336: * @param prefix prefix
337: * @return NotUnderstood Name
338: */
339: public static NameImpl createNotUnderstood1_2Name(String prefix) {
340: return new NotUnderstood1_2Name(prefix);
341: }
342:
343: /**
344: * Create a name object for a SOAP1.2 Upgrade element.
345: *
346: * @param prefix prefix
347: * @return Upgrade Name
348: */
349: public static NameImpl createUpgrade1_2Name(String prefix) {
350: return new Upgrade1_2Name(prefix);
351: }
352:
353: /**
354: * Create a name object for a SOAP1.2 SupportedEnvelope Upgrade element.
355: *
356: * @param prefix prefix
357: * @return Supported Envelope Name
358: */
359: public static NameImpl createSupportedEnvelope1_2Name(String prefix) {
360: return new SupportedEnvelope1_2Name(prefix);
361: }
362:
363: /**
364: * Create a name object for a SOAP1.2
365: * Fault, Reason or Detail.
366: *
367: * @param localName Local Name of element
368: * @param prefix prefix
369: * @return Fault Name
370: */
371: public static NameImpl createFault1_2Name(
372: String localName,
373: String prefix) {
374: return new Fault1_2Name(localName, prefix);
375: }
376:
377: /**
378: * Create a name object for a SOAP1.2 Fault/Code or Subcode.
379: *
380: * @param localName Either "Code" or "Subcode"
381: * @param prefix prefix
382: * @return CodeSubcode Name
383: */
384: public static NameImpl createCodeSubcode1_2Name(
385: String prefix,
386: String localName) {
387: return new CodeSubcode1_2Name(localName, prefix);
388: }
389:
390: /**
391: * Create a name object for a SOAP1.1 Fault Detail.
392: *
393: * @return Detail Name
394: */
395: public static NameImpl createDetail1_1Name() {
396: return new Detail1_1Name();
397: }
398:
399: public static NameImpl createDetail1_1Name(String prefix) {
400: return new Detail1_1Name(prefix);
401: }
402:
403: public static NameImpl createFaultElement1_1Name(String localName) {
404: return new FaultElement1_1Name(localName);
405: }
406:
407: public static NameImpl createFaultElement1_1Name(String localName,
408: String prefix) {
409: return new FaultElement1_1Name(localName, prefix);
410: }
411:
412: public static NameImpl createSOAP11Name(String string) {
413: return new SOAP1_1Name(string, null);
414: }
415: public static NameImpl createSOAP12Name(String string) {
416: return new SOAP1_2Name(string, null);
417: }
418:
419: public static NameImpl createSOAP12Name(String localName, String prefix) {
420: return new SOAP1_2Name(localName, prefix);
421: }
422:
423: public static NameImpl createXmlName(String localName) {
424: return new NameImpl(localName, XMLConstants.XML_NS_PREFIX, XMLConstants.XML_NS_URI);
425: }
426:
427: public static Name copyElementName(Element element) {
428: String localName = element.getLocalName();
429: String prefix = element.getPrefix();
430: String uri = element.getNamespaceURI();
431: return create(localName, prefix, uri);
432: }
433:
434:
435: static class SOAP1_1Name extends NameImpl {
436: SOAP1_1Name(String name, String prefix) {
437: super(
438: name,
439: (prefix == null || prefix.equals(""))
440: ? NameImpl.SOAP_ENVELOPE_PREFIX
441: : prefix,
442: NameImpl.SOAP11_NAMESPACE);
443: }
444: }
445:
446: static class Envelope1_1Name extends SOAP1_1Name {
447: Envelope1_1Name(String prefix) {
448: super("Envelope", prefix);
449: }
450: }
451:
452: static class Header1_1Name extends SOAP1_1Name {
453: Header1_1Name(String prefix) {
454: super("Header", prefix);
455: }
456: }
457:
458: static class Body1_1Name extends SOAP1_1Name {
459: Body1_1Name(String prefix) {
460: super("Body", prefix);
461: }
462: }
463:
464: static class Fault1_1Name extends NameImpl {
465: Fault1_1Name(String prefix) {
466: super(
467: "Fault",
468:• (prefix == null || prefix.equals(""))
469: ? SOAP_ENVELOPE_PREFIX
470: : prefix,
471: SOAP11_NAMESPACE);
472: }
473: }
474:
475: static class Detail1_1Name extends NameImpl {
476: Detail1_1Name() {
477: super("detail");
478: }
479:
480: Detail1_1Name(String prefix) {
481: super("detail", prefix, "");
482: }
483: }
484:
485: static class FaultElement1_1Name extends NameImpl {
486: FaultElement1_1Name(String localName) {
487: super(localName);
488: }
489:
490: FaultElement1_1Name(String localName, String prefix) {
491: super(localName, prefix, "");
492: }
493: }
494:
495: static class SOAP1_2Name extends NameImpl {
496: SOAP1_2Name(String name, String prefix) {
497: super(
498: name,
499: (prefix == null || prefix.equals(""))
500: ? SOAPConstants.SOAP_ENV_PREFIX
501: : prefix,
502: SOAP12_NAMESPACE);
503: }
504: }
505:
506: static class Envelope1_2Name extends SOAP1_2Name {
507: Envelope1_2Name(String prefix) {
508: super("Envelope", prefix);
509: }
510: }
511:
512: static class Header1_2Name extends SOAP1_2Name {
513: Header1_2Name(String prefix) {
514: super("Header", prefix);
515: }
516: }
517:
518: static class Body1_2Name extends SOAP1_2Name {
519: Body1_2Name(String prefix) {
520: super("Body", prefix);
521: }
522: }
523:
524: static class Fault1_2Name extends NameImpl {
525: Fault1_2Name(String name, String prefix) {
526: super(
527: (name == null || name.equals("")) ? "Fault" : name,
528: (prefix == null || prefix.equals(""))
529: ? SOAPConstants.SOAP_ENV_PREFIX
530: : prefix,
531: SOAP12_NAMESPACE);
532: }
533: }
534:
535: static class NotUnderstood1_2Name extends NameImpl {
536: NotUnderstood1_2Name(String prefix) {
537: super(
538: "NotUnderstood",
539: (prefix == null || prefix.equals(""))
540: ? SOAPConstants.SOAP_ENV_PREFIX
541: : prefix,
542: SOAP12_NAMESPACE);
543: }
544: }
545:
546: static class Upgrade1_2Name extends NameImpl {
547: Upgrade1_2Name(String prefix) {
548: super(
549: "Upgrade",
550: (prefix == null || prefix.equals(""))
551: ? SOAPConstants.SOAP_ENV_PREFIX
552: : prefix,
553: SOAP12_NAMESPACE);
554: }
555: }
556:
557: static class SupportedEnvelope1_2Name extends NameImpl {
558: SupportedEnvelope1_2Name(String prefix) {
559: super(
560: "SupportedEnvelope",
561: (prefix == null || prefix.equals(""))
562: ? SOAPConstants.SOAP_ENV_PREFIX
563: : prefix,
564: SOAP12_NAMESPACE);
565: }
566: }
567:
568: static class CodeSubcode1_2Name extends SOAP1_2Name {
569: CodeSubcode1_2Name(String prefix, String localName) {
570: super(prefix, localName);
571: }
572: }
573:
574: }