/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package javax.xml.soap; import java.util.Locale; /** * An element in the <CODE>SOAPBody</CODE> object that contains error and/or status information. * This information may relate to errors in the <CODE>SOAPMessage</CODE> object or to problems that * are not related to the content in the message itself. Problems not related to the message itself * are generally errors in processing, such as the inability to communicate with an upstream * server. * <p/> * The <CODE>SOAPFault</CODE> interface provides methods for retrieving the information contained in * a <CODE> SOAPFault</CODE> object and for setting the fault code, the fault actor, and a string * describing the fault. A fault code is one of the codes defined in the SOAP 1.1 specification that * describe the fault. An actor is an intermediate recipient to whom a message was routed. The * message path may include one or more actors, or, if no actors are specified, the message goes * only to the default actor, which is the final intended recipient. */ public interface SOAPFault extends SOAPBodyElement { /** * Sets this <CODE>SOAPFault</CODE> object with the given fault code. * <p/> * <P>Fault codes, which given information about the fault, are defined in the SOAP 1.1 * specification.</P> * * @param faultCode a <CODE>String</CODE> giving the fault code to be set; must be one of the * fault codes defined in the SOAP 1.1 specification * @throws SOAPException if there was an error in adding the <CODE>faultCode</CODE> to the * underlying XML tree. * @see #getFaultCode() getFaultCode() */ public abstract void setFaultCode(String faultCode) throws SOAPException; /** * Gets the fault code for this <CODE>SOAPFault</CODE> object. * * @return a <CODE>String</CODE> with the fault code * @see #setFaultCode(String) setFaultCode(java.lang.String) */ public abstract String getFaultCode(); /** * Sets this <CODE>SOAPFault</CODE> object with the given fault actor. * <p/> * <P>The fault actor is the recipient in the message path who caused the fault to happen.</P> * * @param faultActor a <CODE>String</CODE> identifying the actor that caused this <CODE> * SOAPFault</CODE> object * @throws SOAPException if there was an error in adding the <CODE>faultActor</CODE> to the * underlying XML tree. * @see #getFaultActor() getFaultActor() */ public abstract void setFaultActor(String faultActor) throws SOAPException; /** * Gets the fault actor for this <CODE>SOAPFault</CODE> object. * * @return a <CODE>String</CODE> giving the actor in the message path that caused this * <CODE>SOAPFault</CODE> object * @see #setFaultActor(String) setFaultActor(java.lang.String) */ public abstract String getFaultActor(); /** * Sets the fault string for this <CODE>SOAPFault</CODE> object to the given string. * * @param faultString a <CODE>String</CODE> giving an explanation of the fault * @throws SOAPException if there was an error in adding the <CODE>faultString</CODE> to the * underlying XML tree. * @see #getFaultString() getFaultString() */ public abstract void setFaultString(String faultString) throws SOAPException; /** * Gets the fault string for this <CODE>SOAPFault</CODE> object. * * @return a <CODE>String</CODE> giving an explanation of the fault */ public abstract String getFaultString(); /** * Returns the detail element for this <CODE>SOAPFault</CODE> object. * <p/> * <P>A <CODE>Detail</CODE> object carries application-specific error information related to * <CODE> SOAPBodyElement</CODE> objects.</P> * * @return a <CODE>Detail</CODE> object with application-specific error information */ public abstract Detail getDetail(); /** * Creates a <CODE>Detail</CODE> object and sets it as the <CODE>Detail</CODE> object for this * <CODE>SOAPFault</CODE> object. * <p/> * <P>It is illegal to add a detail when the fault already contains a detail. Therefore, this * method should be called only after the existing detail has been removed.</P> * * @return the new <CODE>Detail</CODE> object * @throws SOAPException if this <CODE>SOAPFault</CODE> object already contains a valid * <CODE>Detail</CODE> object */ public abstract Detail addDetail() throws SOAPException; /** * Sets this <code>SOAPFault</code> object with the given fault code. * <p/> * Fault codes, which give information about the fault, are defined in the SOAP 1.1 * specification. A fault code is mandatory and must be of type <code>QName</code>. This method * provides a convenient way to set a fault code. For example, * <p/> * <pre> * SOAPEnvelope se = ...; * // Create a qualified name in the SOAP namespace with a localName * // of "Client". Note that prefix parameter is optional and is null * // here which causes the implementation to use an appropriate prefix. * Name qname = se.createName("Client", null, * SOAPConstants.URI_NS_SOAP_ENVELOPE); * SOAPFault fault = ...; * fault.setFaultCode(qname); * <p/> * It is preferable to use this method over setFaultCode(String). * * @param name a <code>Name</code> object giving the fault code to be set. It must be namespace * qualified. * @throws SOAPException if there was an error in adding the <code>faultcode</code> element to * the underlying XML tree */ public abstract void setFaultCode(Name name) throws SOAPException; /** * Gets the mandatory SOAP 1.1 fault code for this <code>SOAPFault</code> object as a SAAJ * <code>Name</code> object. The SOAP 1.1 specification requires the value of the "faultcode" * element to be of type QName. This method returns the content of the element as a QName in the * form of a SAAJ <code>Name</code> object. This method should be used instead of the * <code>getFaultCode()</code> method since it allows applications to easily access the * namespace name without additional parsing. * <p/> * In the future, a QName object version of this method may also be added. * * @return a <code>Name</code> representing the faultcode */ public abstract Name getFaultCodeAsName(); /** * Sets the fault string for this <code>SOAPFault</code> object to the given string and * localized to the given locale. * * @param faultString a <code>String</code> giving an explanation of the fault * @param locale a <code>Locale</code> object indicating the native language of the * <code>faultString</code> * @throws SOAPException if there was an error in adding the <code>faultString</code> to the * underlying XML tree */ public abstract void setFaultString(String faultString, Locale locale) throws SOAPException; /** * Returns the optional detail element for this <code>SOAPFault</code> object. * * @return a <code>Locale</code> object indicating the native language of the fault string or * <code>null</code> if no locale was specified */ public abstract Locale getFaultStringLocale(); public abstract void addFaultReasonText(java.lang.String reasonText, java.util.Locale locale) throws SOAPException; public abstract void appendFaultSubcode(javax.xml.namespace.QName qname) throws SOAPException; public abstract javax.xml.namespace.QName getFaultCodeAsQName(); public abstract java.lang.String getFaultNode(); public abstract java.util.Iterator getFaultReasonLocales() throws SOAPException; public abstract java.lang.String getFaultReasonText(java.util.Locale locale) throws SOAPException; public abstract java.util.Iterator getFaultReasonTexts() throws SOAPException; public abstract java.lang.String getFaultRole(); public abstract java.util.Iterator getFaultSubcodes(); public abstract boolean hasDetail(); public abstract void removeAllFaultSubcodes(); public abstract void setFaultCode(javax.xml.namespace.QName qname) throws SOAPException; public abstract void setFaultNode(java.lang.String s) throws SOAPException; public abstract void setFaultRole(java.lang.String s) throws SOAPException; }