< 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,23 +27,29 @@
*
* @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 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,26 +73,34 @@
public Fault1_2Impl(SOAPDocumentImpl ownerDocument, String prefix) {
super(ownerDocument, NameImpl.createFault1_2Name(null, prefix));
}
- public Fault1_2Impl(Element domElement, SOAPDocumentImpl ownerDoc) {
+ 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,21 +121,24 @@
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,26 +151,28 @@
"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();
}
- public Iterator getFaultReasonTexts() throws SOAPException {
+ @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<String>();
+ 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,10 +185,11 @@
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,10 +232,11 @@
reasonText.detachNode();
}
}
}
+ @Override
public String getFaultReasonText(Locale locale) throws SOAPException {
if (locale == null)
return null;
@@ -232,17 +253,18 @@
}
return null;
}
- public Iterator getFaultReasonLocales() throws SOAPException {
+ @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<Locale>();
+ 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,10 +277,11 @@
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,18 +309,20 @@
}
}
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,14 +337,16 @@
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,18 +358,20 @@
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,10 +382,11 @@
return convertCodeToQName(
faultcode,
(SOAPElement) valueElements.next());
}
+ @Override
public Name getFaultCodeAsName() {
String faultcode = getFaultCode();
if (faultcode == null) {
return null;
}
@@ -368,31 +398,35 @@
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,10 +458,11 @@
prefix,
subcode.getNamespaceURI());
subcodeValueElement.addTextNode(prefix + ":" + subcode.getLocalPart());
}
+ @Override
public void removeAllFaultSubcodes() {
if (this.faultCodeElement == null)
findFaultCodeElement();
Iterator subcodeElements =
this.faultCodeElement.getChildElements(subcodeName);
@@ -435,14 +470,15 @@
SOAPElement subcode = (SOAPElement) subcodeElements.next();
subcode.detachNode();
}
}
- public Iterator getFaultSubcodes() {
+ @Override
+ public Iterator<QName> getFaultSubcodes() {
if (this.faultCodeElement == null)
findFaultCodeElement();
- final List<QName> subcodeList = new ArrayList<QName>();
+ final List<QName> subcodeList = new ArrayList<>();
SOAPElement currentCodeElement = this.faultCodeElement;
Iterator subcodeElements =
currentCodeElement.getChildElements(subcodeName);
while (subcodeElements.hasNext()) {
currentCodeElement = (ElementImpl) subcodeElements.next();
@@ -455,18 +491,21 @@
}
//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,41 +517,46 @@
/*
* 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,10 +575,11 @@
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,26 +587,30 @@
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 >