< 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 >