< prev index next >

jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Fault1_2Impl.java

Print this page

        

*** 27,49 **** * * @author SAAJ RI Development Team */ package com.sun.xml.internal.messaging.saaj.soap.ver1_2; - import java.util.*; import java.util.logging.Logger; import java.util.logging.Level; import javax.xml.namespace.QName; - import javax.xml.soap.*; import com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl; 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 org.w3c.dom.Element; public class Fault1_2Impl extends FaultImpl { --- 27,55 ---- * * @author SAAJ RI Development Team */ package com.sun.xml.internal.messaging.saaj.soap.ver1_2; import java.util.logging.Logger; import java.util.logging.Level; import javax.xml.namespace.QName; import com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl; 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 java.util.ArrayList; + import java.util.Iterator; + import java.util.List; + import java.util.Locale; + import javax.xml.soap.Name; + import javax.xml.soap.SOAPConstants; + import javax.xml.soap.SOAPElement; + import javax.xml.soap.SOAPException; import org.w3c.dom.Element; public class Fault1_2Impl extends FaultImpl {
*** 67,92 **** public Fault1_2Impl(SOAPDocumentImpl ownerDocument, String prefix) { super(ownerDocument, NameImpl.createFault1_2Name(null, prefix)); } ! public Fault1_2Impl(Element domElement, SOAPDocumentImpl ownerDoc) { super(ownerDoc, domElement); } protected NameImpl getDetailName() { return NameImpl.createSOAP12Name("Detail", getPrefix()); } protected NameImpl getFaultCodeName() { return NameImpl.createSOAP12Name("Code", getPrefix()); } protected NameImpl getFaultStringName() { return getFaultReasonName(); } protected NameImpl getFaultActorName() { return getFaultRoleName(); } private NameImpl getFaultRoleName() { --- 73,106 ---- public Fault1_2Impl(SOAPDocumentImpl ownerDocument, String prefix) { super(ownerDocument, NameImpl.createFault1_2Name(null, prefix)); } ! public Fault1_2Impl(SOAPDocumentImpl ownerDocument) { ! super(ownerDocument, NameImpl.createFault1_2Name(null, null)); ! } ! ! public Fault1_2Impl(SOAPDocumentImpl ownerDoc, Element domElement) { super(ownerDoc, domElement); } + @Override protected NameImpl getDetailName() { return NameImpl.createSOAP12Name("Detail", getPrefix()); } + @Override protected NameImpl getFaultCodeName() { return NameImpl.createSOAP12Name("Code", getPrefix()); } + @Override protected NameImpl getFaultStringName() { return getFaultReasonName(); } + @Override protected NameImpl getFaultActorName() { return getFaultRoleName(); } private NameImpl getFaultRoleName() {
*** 107,127 **** --- 121,144 ---- private static NameImpl getXmlLangName() { return NameImpl.createXmlName("lang"); } + @Override protected DetailImpl createDetail() { return new Detail1_2Impl( ((SOAPDocument) getOwnerDocument()).getDocument()); } + @Override protected FaultElementImpl createSOAPFaultElement(String localName) { return new FaultElement1_2Impl( ((SOAPDocument) getOwnerDocument()).getDocument(), localName); } + @Override protected void checkIfStandardFaultCode(String faultCode, String uri) throws SOAPException { QName qname = new QName(uri, faultCode); if (SOAPConstants.SOAP_DATAENCODINGUNKNOWN_FAULT.equals(qname) || SOAPConstants.SOAP_MUSTUNDERSTAND_FAULT.equals(qname) ||
*** 134,159 **** "SAAJ0435.ver1_2.code.not.standard", qname); throw new SOAPExceptionImpl(qname + " is not a standard Code value"); } protected void finallySetFaultCode(String faultcode) throws SOAPException { SOAPElement value = this.faultCodeElement.addChildElement(valueName); value.addTextNode(faultcode); } private void findReasonElement() { findFaultStringElement(); } ! public Iterator getFaultReasonTexts() throws SOAPException { // Fault Reason has similar semantics as faultstring if (this.faultStringElement == null) findReasonElement(); Iterator eachTextElement = this.faultStringElement.getChildElements(textName); ! List<String> texts = new ArrayList<String>(); while (eachTextElement.hasNext()) { SOAPElement textElement = (SOAPElement) eachTextElement.next(); Locale thisLocale = getLocale(textElement); if (thisLocale == null) { log.severe("SAAJ0431.ver1_2.xml.lang.missing"); --- 151,178 ---- "SAAJ0435.ver1_2.code.not.standard", qname); throw new SOAPExceptionImpl(qname + " is not a standard Code value"); } + @Override protected void finallySetFaultCode(String faultcode) throws SOAPException { SOAPElement value = this.faultCodeElement.addChildElement(valueName); value.addTextNode(faultcode); } private void findReasonElement() { findFaultStringElement(); } ! @Override ! public Iterator<String> getFaultReasonTexts() throws SOAPException { // Fault Reason has similar semantics as faultstring if (this.faultStringElement == null) findReasonElement(); Iterator eachTextElement = this.faultStringElement.getChildElements(textName); ! List<String> texts = new ArrayList<>(); while (eachTextElement.hasNext()) { SOAPElement textElement = (SOAPElement) eachTextElement.next(); Locale thisLocale = getLocale(textElement); if (thisLocale == null) { log.severe("SAAJ0431.ver1_2.xml.lang.missing");
*** 166,175 **** --- 185,195 ---- throw new SOAPExceptionImpl("env:Text must be present inside env:Reason"); } return texts.iterator(); } + @Override public void addFaultReasonText(String text, java.util.Locale locale) throws SOAPException { if (locale == null) { log.severe("SAAJ0430.ver1_2.locale.required");
*** 212,221 **** --- 232,242 ---- reasonText.detachNode(); } } } + @Override public String getFaultReasonText(Locale locale) throws SOAPException { if (locale == null) return null;
*** 232,248 **** } return null; } ! public Iterator getFaultReasonLocales() throws SOAPException { // Fault Reason has similar semantics as faultstring if (this.faultStringElement == null) findReasonElement(); Iterator eachTextElement = this.faultStringElement.getChildElements(textName); ! List<Locale> localeSet = new ArrayList<Locale>(); while (eachTextElement.hasNext()) { SOAPElement textElement = (SOAPElement) eachTextElement.next(); Locale thisLocale = getLocale(textElement); if (thisLocale == null) { log.severe("SAAJ0431.ver1_2.xml.lang.missing"); --- 253,270 ---- } return null; } ! @Override ! public Iterator<Locale> getFaultReasonLocales() throws SOAPException { // Fault Reason has similar semantics as faultstring if (this.faultStringElement == null) findReasonElement(); Iterator eachTextElement = this.faultStringElement.getChildElements(textName); ! List<Locale> localeSet = new ArrayList<>(); while (eachTextElement.hasNext()) { SOAPElement textElement = (SOAPElement) eachTextElement.next(); Locale thisLocale = getLocale(textElement); if (thisLocale == null) { log.severe("SAAJ0431.ver1_2.xml.lang.missing");
*** 255,264 **** --- 277,287 ---- throw new SOAPExceptionImpl("env:Text elements with mandatory xml:lang attributes must be present inside env:Reason"); } return localeSet.iterator(); } + @Override public Locale getFaultStringLocale() { Locale locale = null; try { locale = (Locale) getFaultReasonLocales().next(); } catch (SOAPException e) {}
*** 286,303 **** --- 309,328 ---- } } return null; } + @Override public String getFaultNode() { SOAPElement faultNode = findAndConvertChildElement(getFaultNodeName()); if (faultNode == null) { return null; } return faultNode.getValue(); } + @Override public void setFaultNode(String uri) throws SOAPException { SOAPElement faultNode = findAndConvertChildElement(getFaultNodeName()); if (faultNode != null) { faultNode.detachNode(); }
*** 312,325 **** --- 337,352 ---- return; } addNode(faultNode); } + @Override public String getFaultRole() { return getFaultActor(); } + @Override public void setFaultRole(String uri) throws SOAPException { if (this.faultActorElement == null) findFaultActorElement(); if (this.faultActorElement != null) this.faultActorElement.detachNode();
*** 331,348 **** --- 358,377 ---- return; } addNode(this.faultActorElement); } + @Override public String getFaultCode() { if (this.faultCodeElement == null) findFaultCodeElement(); Iterator codeValues = this.faultCodeElement.getChildElements(valueName); return ((SOAPElement) codeValues.next()).getValue(); } + @Override public QName getFaultCodeAsQName() { String faultcode = getFaultCode(); if (faultcode == null) { return null; }
*** 353,362 **** --- 382,392 ---- return convertCodeToQName( faultcode, (SOAPElement) valueElements.next()); } + @Override public Name getFaultCodeAsName() { String faultcode = getFaultCode(); if (faultcode == null) { return null; }
*** 368,398 **** --- 398,432 ---- convertCodeToQName( faultcode, (SOAPElement) valueElements.next())); } + @Override public String getFaultString() { String reason = null; try { //reason = getFaultReasonText(Locale.getDefault()); //if (reason == null) reason = (String) getFaultReasonTexts().next(); } catch (SOAPException e) {} return reason; } + @Override public void setFaultString(String faultString) throws SOAPException { addFaultReasonText(faultString, Locale.getDefault()); } + @Override public void setFaultString( String faultString, Locale locale) throws SOAPException { addFaultReasonText(faultString, locale); } + @Override public void appendFaultSubcode(QName subcode) throws SOAPException { if (subcode == null) { return; } if (subcode.getNamespaceURI() == null ||
*** 424,433 **** --- 458,468 ---- prefix, subcode.getNamespaceURI()); subcodeValueElement.addTextNode(prefix + ":" + subcode.getLocalPart()); } + @Override public void removeAllFaultSubcodes() { if (this.faultCodeElement == null) findFaultCodeElement(); Iterator subcodeElements = this.faultCodeElement.getChildElements(subcodeName);
*** 435,448 **** SOAPElement subcode = (SOAPElement) subcodeElements.next(); subcode.detachNode(); } } ! public Iterator getFaultSubcodes() { if (this.faultCodeElement == null) findFaultCodeElement(); ! final List<QName> subcodeList = new ArrayList<QName>(); SOAPElement currentCodeElement = this.faultCodeElement; Iterator subcodeElements = currentCodeElement.getChildElements(subcodeName); while (subcodeElements.hasNext()) { currentCodeElement = (ElementImpl) subcodeElements.next(); --- 470,484 ---- SOAPElement subcode = (SOAPElement) subcodeElements.next(); subcode.detachNode(); } } ! @Override ! public Iterator<QName> getFaultSubcodes() { if (this.faultCodeElement == null) findFaultCodeElement(); ! final List<QName> subcodeList = new ArrayList<>(); SOAPElement currentCodeElement = this.faultCodeElement; Iterator subcodeElements = currentCodeElement.getChildElements(subcodeName); while (subcodeElements.hasNext()) { currentCodeElement = (ElementImpl) subcodeElements.next();
*** 455,472 **** --- 491,511 ---- } //return subcodeList.iterator(); return new Iterator<QName>() { Iterator<QName> subCodeIter = subcodeList.iterator(); + @Override public boolean hasNext() { return subCodeIter.hasNext(); } + @Override public QName next() { return subCodeIter.next(); } + @Override public void remove() { throw new UnsupportedOperationException( "Method remove() not supported on SubCodes Iterator"); } };
*** 478,518 **** --- 517,562 ---- /* * Override setEncodingStyle of ElementImpl to restrict adding encodingStyle * attribute to SOAP Fault (SOAP 1.2 spec, part 1, section 5.1.1) */ + @Override public void setEncodingStyle(String encodingStyle) throws SOAPException { log.severe("SAAJ0407.ver1_2.no.encodingStyle.in.fault"); throw new SOAPExceptionImpl("encodingStyle attribute cannot appear on Fault"); } + @Override public SOAPElement addAttribute(Name name, String value) throws SOAPException { if (name.getLocalName().equals("encodingStyle") && name.getURI().equals(NameImpl.SOAP12_NAMESPACE)) { setEncodingStyle(value); } return super.addAttribute(name, value); } + @Override public SOAPElement addAttribute(QName name, String value) throws SOAPException { if (name.getLocalPart().equals("encodingStyle") && name.getNamespaceURI().equals(NameImpl.SOAP12_NAMESPACE)) { setEncodingStyle(value); } return super.addAttribute(name, value); } + @Override public SOAPElement addTextNode(String text) throws SOAPException { log.log( Level.SEVERE, "SAAJ0416.ver1_2.adding.text.not.legal", getElementQName()); throw new SOAPExceptionImpl("Adding text to SOAP 1.2 Fault is not legal"); } + @Override public SOAPElement addChildElement(SOAPElement element) throws SOAPException { String localName = element.getLocalName(); if ("Detail".equalsIgnoreCase(localName)) { if (hasDetail()) {
*** 531,540 **** --- 575,585 ---- return convertToSoapElement(importedElement); } else return super.addChildElement(element); } + @Override protected boolean isStandardFaultElement(String localName) { if (localName.equalsIgnoreCase("code") || localName.equalsIgnoreCase("reason") || localName.equalsIgnoreCase("node") || localName.equalsIgnoreCase("role") ||
*** 542,567 **** --- 587,616 ---- return true; } return false; } + @Override protected QName getDefaultFaultCode() { return SOAPConstants.SOAP_SENDER_FAULT; } + @Override protected FaultElementImpl createSOAPFaultElement(QName qname) { return new FaultElement1_2Impl( ((SOAPDocument) getOwnerDocument()).getDocument(), qname); } + @Override protected FaultElementImpl createSOAPFaultElement(Name qname) { return new FaultElement1_2Impl( ((SOAPDocument) getOwnerDocument()).getDocument(), (NameImpl)qname); } + @Override public void setFaultActor(String faultActor) throws SOAPException { this.setFaultRole(faultActor); } }
< prev index next >