< prev index next >

jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/FaultImpl.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 1997, 2014, 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 --- 1,7 ---- /* ! * Copyright (c) 1997, 2017, 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
*** 29,38 **** --- 29,39 ---- import java.util.logging.Level; import javax.xml.namespace.QName; import javax.xml.soap.*; + import com.sun.xml.internal.messaging.saaj.util.SAAJUtil; import org.w3c.dom.Element; import com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl; import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl; import com.sun.xml.internal.messaging.saaj.soap.name.NameImpl;
*** 51,60 **** --- 52,64 ---- protected FaultImpl(SOAPDocumentImpl ownerDoc, NameImpl name) { super(ownerDoc, name); } + public FaultImpl(SOAPDocumentImpl ownerDoc, Element domElement) { + super(ownerDoc, domElement); + } protected abstract NameImpl getDetailName(); protected abstract NameImpl getFaultCodeName(); protected abstract NameImpl getFaultStringName(); protected abstract NameImpl getFaultActorName();
*** 81,90 **** --- 85,95 ---- protected void findFaultStringElement() { this.faultStringElement = (SOAPFaultElement) findAndConvertChildElement(getFaultStringName()); } + @Override public void setFaultCode(String faultCode) throws SOAPException { setFaultCode( NameImpl.getLocalNameFromTagName(faultCode), NameImpl.getPrefixFromTagName(faultCode), null);
*** 129,145 **** --- 134,152 ---- } else { finallySetFaultCode(prefix + ":" + faultCode); } } + @Override public void setFaultCode(Name faultCodeQName) throws SOAPException { setFaultCode( faultCodeQName.getLocalName(), faultCodeQName.getPrefix(), faultCodeQName.getURI()); } + @Override public void setFaultCode(QName faultCodeQName) throws SOAPException { setFaultCode( faultCodeQName.getLocalPart(), faultCodeQName.getPrefix(), faultCodeQName.getNamespaceURI());
*** 163,182 **** --- 170,191 ---- protected void initializeDetail() { NameImpl detailName = getDetailName(); detail = (Detail) findAndConvertChildElement(detailName); } + @Override public Detail getDetail() { if (detail == null) initializeDetail(); if ((detail != null) && (detail.getParentNode() == null)) { // a detach node was called on it detail = null; } return detail; } + @Override public Detail addDetail() throws SOAPException { if (detail == null) initializeDetail(); if (detail == null) { detail = createDetail();
*** 186,225 **** // Log throw new SOAPExceptionImpl("Error: Detail already exists"); } } public boolean hasDetail() { return (getDetail() != null); } public abstract void setFaultActor(String faultActor) throws SOAPException; public String getFaultActor() { if (this.faultActorElement == null) findFaultActorElement(); if (this.faultActorElement != null) { return this.faultActorElement.getValue(); } return null; } public SOAPElement setElementQName(QName newName) throws SOAPException { log.log( Level.SEVERE, "SAAJ0146.impl.invalid.name.change.requested", new Object[] {elementQName.getLocalPart(), newName.getLocalPart()}); throw new SOAPException( "Cannot change name for " + elementQName.getLocalPart() + " to " + newName.getLocalPart()); } protected SOAPElement convertToSoapElement(Element element) { ! if (element instanceof SOAPFaultElement) { ! return (SOAPElement) element; ! } else if (element instanceof SOAPElement) { ! SOAPElement soapElement = (SOAPElement) element; if (getDetailName().equals(soapElement.getElementName())) { return replaceElementWithSOAPElement(element, createDetail()); } else { String localName = soapElement.getElementName().getLocalName(); --- 195,240 ---- // Log throw new SOAPExceptionImpl("Error: Detail already exists"); } } + @Override public boolean hasDetail() { return (getDetail() != null); } + @Override public abstract void setFaultActor(String faultActor) throws SOAPException; + @Override public String getFaultActor() { if (this.faultActorElement == null) findFaultActorElement(); if (this.faultActorElement != null) { return this.faultActorElement.getValue(); } return null; } + @Override public SOAPElement setElementQName(QName newName) throws SOAPException { log.log( Level.SEVERE, "SAAJ0146.impl.invalid.name.change.requested", new Object[] {elementQName.getLocalPart(), newName.getLocalPart()}); throw new SOAPException( "Cannot change name for " + elementQName.getLocalPart() + " to " + newName.getLocalPart()); } + @Override protected SOAPElement convertToSoapElement(Element element) { ! final org.w3c.dom.Node soapNode = getSoapDocument().findIfPresent(element); ! if (soapNode instanceof SOAPFaultElement) { ! return (SOAPElement) soapNode; ! } else if (soapNode instanceof SOAPElement) { ! SOAPElement soapElement = (SOAPElement) soapNode; if (getDetailName().equals(soapElement.getElementName())) { return replaceElementWithSOAPElement(element, createDetail()); } else { String localName = soapElement.getElementName().getLocalName();
*** 231,246 **** } } else { Name elementName = NameImpl.copyElementName(element); ElementImpl newElement; if (getDetailName().equals(elementName)) { ! newElement = (ElementImpl) createDetail(); } else { String localName = elementName.getLocalName(); if (isStandardFaultElement(localName)) newElement = ! (ElementImpl) createSOAPFaultElement(elementName); else newElement = (ElementImpl) createElement(elementName); } return replaceElementWithSOAPElement(element, newElement); } --- 246,261 ---- } } else { Name elementName = NameImpl.copyElementName(element); ElementImpl newElement; if (getDetailName().equals(elementName)) { ! newElement = createDetail(); } else { String localName = elementName.getLocalName(); if (isStandardFaultElement(localName)) newElement = ! createSOAPFaultElement(elementName); else newElement = (ElementImpl) createElement(elementName); } return replaceElementWithSOAPElement(element, newElement); }
*** 282,291 **** --- 297,307 ---- // Log throw new SOAPExceptionImpl("Error: Faultactor already exists"); } } + @Override protected SOAPElement addElement(Name name) throws SOAPException { if (getDetailName().equals(name)) { return addDetail(); } else if(getFaultCodeName().equals(name)) { return addFaultCodeElement();
*** 295,304 **** --- 311,321 ---- return addFaultActorElement(); } return super.addElement(name); } + @Override protected SOAPElement addElement(QName name) throws SOAPException { return addElement(NameImpl.convertToName(name)); } protected FaultElementImpl addSOAPFaultElement(String localName)
*** 309,318 **** --- 326,337 ---- return faultElem; } /** * Convert an xml:lang attribute value into a Locale object + * @param xmlLang xml:lang attribute value + * @return Locale */ protected static Locale xmlLangToLocale(String xmlLang) { if (xmlLang == null) { return null; }
< prev index next >