--- a/jaxws/src/java.xml.soap/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Fault1_1Impl.java Mon Jan 19 09:32:40 2015 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,387 +0,0 @@
-/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/**
-*
-* @author SAAJ RI Development Team
-*/
-package com.sun.xml.internal.messaging.saaj.soap.ver1_1;
-
-import java.util.Iterator;
-import java.util.Locale;
-import java.util.logging.Logger;
-import java.util.logging.Level;
-
-import javax.xml.namespace.QName;
-import javax.xml.soap.SOAPElement;
-import javax.xml.soap.SOAPFaultElement;
-import javax.xml.soap.SOAPException;
-import javax.xml.soap.SOAPConstants;
-import javax.xml.soap.Name;
-import javax.xml.soap.Name;
-
-import com.sun.xml.internal.messaging.saaj.soap.SOAPDocument;
-import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl;
-import com.sun.xml.internal.messaging.saaj.soap.impl.*;
-import com.sun.xml.internal.messaging.saaj.soap.name.NameImpl;
-import com.sun.xml.internal.messaging.saaj.util.LogDomainConstants;
-import com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl;
-
-
-public class Fault1_1Impl extends FaultImpl {
-
- protected static final Logger log =
- Logger.getLogger(
- LogDomainConstants.SOAP_VER1_1_DOMAIN,
- "com.sun.xml.internal.messaging.saaj.soap.ver1_1.LocalStrings");
-
- public Fault1_1Impl(SOAPDocumentImpl ownerDocument, String prefix) {
- super(ownerDocument, NameImpl.createFault1_1Name(prefix));
- }
-
- protected NameImpl getDetailName() {
- return NameImpl.createDetail1_1Name();
- }
-
- protected NameImpl getFaultCodeName() {
- return NameImpl.createFromUnqualifiedName("faultcode");
- }
-
- protected NameImpl getFaultStringName() {
- return NameImpl.createFromUnqualifiedName("faultstring");
- }
-
- protected NameImpl getFaultActorName() {
- return NameImpl.createFromUnqualifiedName("faultactor");
- }
-
- protected DetailImpl createDetail() {
- return new Detail1_1Impl(
- ((SOAPDocument) getOwnerDocument()).getDocument());
- }
-
- protected FaultElementImpl createSOAPFaultElement(String localName) {
- return new FaultElement1_1Impl(
- ((SOAPDocument) getOwnerDocument()).getDocument(),
- localName);
- }
-
- protected void checkIfStandardFaultCode(String faultCode, String uri)
- throws SOAPException {
- // SOAP 1.1 doesn't seem to mandate using faultcode from a particular
- // set of values.
- // Also need to be backward compatible.
- }
-
- protected void finallySetFaultCode(String faultcode) throws SOAPException {
- this.faultCodeElement.addTextNode(faultcode);
- }
-
- public String getFaultCode() {
- if (this.faultCodeElement == null)
- findFaultCodeElement();
- return this.faultCodeElement.getValue();
- }
-
- public Name getFaultCodeAsName() {
-
- String faultcodeString = getFaultCode();
- if (faultcodeString == null) {
- return null;
- }
- int prefixIndex = faultcodeString.indexOf(':');
- if (prefixIndex == -1) {
- // Not a valid SOAP message, but we return the unqualified name
- // anyway since some apps do not strictly conform to SOAP
- // specs. A message that does not contain a <faultcode>
- // element itself is also not valid in which case we return
- // null instead of throwing an exception so this is consistent.
- return NameImpl.createFromUnqualifiedName(faultcodeString);
- }
-
- // Get the prefix and map it to a namespace name (AKA namespace URI)
- String prefix = faultcodeString.substring(0, prefixIndex);
- if (this.faultCodeElement == null)
- findFaultCodeElement();
- String nsName = this.faultCodeElement.getNamespaceURI(prefix);
- return NameImpl.createFromQualifiedName(faultcodeString, nsName);
- }
-
- public QName getFaultCodeAsQName() {
- String faultcodeString = getFaultCode();
- if (faultcodeString == null) {
- return null;
- }
- if (this.faultCodeElement == null)
- findFaultCodeElement();
- return convertCodeToQName(faultcodeString, this.faultCodeElement);
- }
-
- public void setFaultString(String faultString) throws SOAPException {
-
- if (this.faultStringElement == null)
- findFaultStringElement();
-
- if (this.faultStringElement == null)
- this.faultStringElement = addSOAPFaultElement("faultstring");
- else {
- this.faultStringElement.removeContents();
- //this.faultStringElement.removeAttributeNS("http://www.w3.org/XML/1998/namespace", "lang");
- this.faultStringElement.removeAttribute("xml:lang");
- }
-
- this.faultStringElement.addTextNode(faultString);
- }
-
- public String getFaultString() {
- if (this.faultStringElement == null)
- findFaultStringElement();
- return this.faultStringElement.getValue();
-
- }
-
- public Locale getFaultStringLocale() {
- if (this.faultStringElement == null)
- findFaultStringElement();
- if (this.faultStringElement != null) {
- String xmlLangAttr =
- this.faultStringElement.getAttributeValue(
- NameImpl.createFromUnqualifiedName("xml:lang"));
- if (xmlLangAttr != null)
- return xmlLangToLocale(xmlLangAttr);
- }
- return null;
- }
-
- public void setFaultString(String faultString, Locale locale)
- throws SOAPException {
- setFaultString(faultString);
- this.faultStringElement.addAttribute(
- NameImpl.createFromTagName("xml:lang"),
- localeToXmlLang(locale));
- }
-
- protected boolean isStandardFaultElement(String localName) {
- if (localName.equalsIgnoreCase("detail") ||
- localName.equalsIgnoreCase("faultcode") ||
- localName.equalsIgnoreCase("faultstring") ||
- localName.equalsIgnoreCase("faultactor")) {
- return true;
- }
- return false;
- }
-
- public void appendFaultSubcode(QName subcode) {
- log.log(
- Level.SEVERE,
- "SAAJ0303.ver1_1.msg.op.unsupported.in.SOAP1.1",
- "appendFaultSubcode");
- throw new UnsupportedOperationException("Not supported in SOAP 1.1");
- }
-
- public void removeAllFaultSubcodes() {
- log.log(
- Level.SEVERE,
- "SAAJ0303.ver1_1.msg.op.unsupported.in.SOAP1.1",
- "removeAllFaultSubcodes");
- throw new UnsupportedOperationException("Not supported in SOAP 1.1");
- }
-
- public Iterator getFaultSubcodes() {
- log.log(
- Level.SEVERE,
- "SAAJ0303.ver1_1.msg.op.unsupported.in.SOAP1.1",
- "getFaultSubcodes");
- throw new UnsupportedOperationException("Not supported in SOAP 1.1");
- }
-
- public String getFaultReasonText(Locale locale) {
- log.log(
- Level.SEVERE,
- "SAAJ0303.ver1_1.msg.op.unsupported.in.SOAP1.1",
- "getFaultReasonText");
- throw new UnsupportedOperationException("Not supported in SOAP 1.1");
- }
-
- public Iterator getFaultReasonTexts() {
- log.log(
- Level.SEVERE,
- "SAAJ0303.ver1_1.msg.op.unsupported.in.SOAP1.1",
- "getFaultReasonTexts");
- throw new UnsupportedOperationException("Not supported in SOAP 1.1");
- }
-
- public Iterator getFaultReasonLocales() {
- log.log(
- Level.SEVERE,
- "SAAJ0303.ver1_1.msg.op.unsupported.in.SOAP1.1",
- "getFaultReasonLocales");
- throw new UnsupportedOperationException("Not supported in SOAP 1.1");
- }
-
- public void addFaultReasonText(String text, java.util.Locale locale)
- throws SOAPException {
- log.log(
- Level.SEVERE,
- "SAAJ0303.ver1_1.msg.op.unsupported.in.SOAP1.1",
- "addFaultReasonText");
- throw new UnsupportedOperationException("Not supported in SOAP 1.1");
- }
-
- public String getFaultRole() {
- log.log(
- Level.SEVERE,
- "SAAJ0303.ver1_1.msg.op.unsupported.in.SOAP1.1",
- "getFaultRole");
- throw new UnsupportedOperationException("Not supported in SOAP 1.1");
- }
-
- public void setFaultRole(String uri) {
- log.log(
- Level.SEVERE,
- "SAAJ0303.ver1_1.msg.op.unsupported.in.SOAP1.1",
- "setFaultRole");
- throw new UnsupportedOperationException("Not supported in SOAP 1.1");
- }
-
- public String getFaultNode() {
- log.log(
- Level.SEVERE,
- "SAAJ0303.ver1_1.msg.op.unsupported.in.SOAP1.1",
- "getFaultNode");
- throw new UnsupportedOperationException("Not supported in SOAP 1.1");
- }
-
- public void setFaultNode(String uri) {
- log.log(
- Level.SEVERE,
- "SAAJ0303.ver1_1.msg.op.unsupported.in.SOAP1.1",
- "setFaultNode");
- throw new UnsupportedOperationException("Not supported in SOAP 1.1");
- }
-
- protected QName getDefaultFaultCode() {
- return new QName(SOAPConstants.URI_NS_SOAP_1_1_ENVELOPE, "Server");
- }
-
- public SOAPElement addChildElement(SOAPElement element)
- throws SOAPException {
- String localName = element.getLocalName();
- if ("Detail".equalsIgnoreCase(localName)) {
- if (hasDetail()) {
- log.severe("SAAJ0305.ver1_2.detail.exists.error");
- throw new SOAPExceptionImpl("Cannot add Detail, Detail already exists");
- }
- }
- return super.addChildElement(element);
- }
-
- protected FaultElementImpl createSOAPFaultElement(QName qname) {
- return new FaultElement1_1Impl(
- ((SOAPDocument) getOwnerDocument()).getDocument(),
- qname);
- }
-
- protected FaultElementImpl createSOAPFaultElement(Name qname) {
- return new FaultElement1_1Impl(
- ((SOAPDocument) getOwnerDocument()).getDocument(),
- (NameImpl)qname);
- }
-
- public void setFaultCode(String faultCode, String prefix, String uri)
- throws SOAPException {
- if (prefix == null || "".equals(prefix)) {
- if (uri != null && !"".equals(uri)) {
- prefix = getNamespacePrefix(uri);
- if (prefix == null || "".equals(prefix)) {
- prefix = "ns0";
- }
- }
- }
-
- if (this.faultCodeElement == null)
- findFaultCodeElement();
-
- if (this.faultCodeElement == null)
- this.faultCodeElement = addFaultCodeElement();
- else
- this.faultCodeElement.removeContents();
-
- if (uri == null || "".equals(uri)) {
- if (prefix != null && !"".equals("prefix")) {
- uri = this.faultCodeElement.getNamespaceURI(prefix);
- }
- }
-
- if (uri == null || "".equals(uri)) {
- if (prefix != null && !"".equals(prefix)) {
- //cannot allow an empty URI for a non-Empty prefix
- log.log(Level.SEVERE, "SAAJ0307.impl.no.ns.URI", new Object[]{prefix + ":" + faultCode});
- throw new SOAPExceptionImpl("Empty/Null NamespaceURI specified for faultCode \"" + prefix + ":" + faultCode + "\"");
- } else {
- uri = "";
- }
- }
-
- checkIfStandardFaultCode(faultCode, uri);
- ((FaultElementImpl) this.faultCodeElement).ensureNamespaceIsDeclared(prefix, uri);
-
- if (prefix == null || "".equals(prefix)) {
- finallySetFaultCode(faultCode);
- } else {
- finallySetFaultCode(prefix + ":" + faultCode);
- }
- }
-
- private boolean standardFaultCode(String faultCode) {
- if (faultCode.equals("VersionMismatch") || faultCode.equals("MustUnderstand")
- || faultCode.equals("Client") || faultCode.equals("Server")) {
- return true;
- }
- if (faultCode.startsWith("VersionMismatch.") || faultCode.startsWith("MustUnderstand.")
- || faultCode.startsWith("Client.") || faultCode.startsWith("Server.")) {
- return true;
- }
- return false;
- }
-
- public void setFaultActor(String faultActor) throws SOAPException {
- if (this.faultActorElement == null)
- findFaultActorElement();
- if (this.faultActorElement != null)
- this.faultActorElement.detachNode();
- if (faultActor == null)
- return;
- this.faultActorElement =
- createSOAPFaultElement(getFaultActorName());
- this.faultActorElement.addTextNode(faultActor);
- if (hasDetail()) {
- insertBefore(this.faultActorElement, this.detail);
- return;
- }
- addNode(this.faultActorElement);
-
- }
-}