1 /* 2 * Copyright 2006 the original author or authors. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package org.springframework.ws.soap; 18 19 import java.util.Locale; 20 import javax.xml.transform.Result; 21 import javax.xml.transform.Source; 22 23 import org.springframework.ws.WebServiceMessage; 24 25 /** 26 * Represents the <code>Body</code> element in a SOAP message. A SOAP body contains the <strong>payload</strong> of the 27 * message. This payload can be custom XML, or a <code>SoapFault</code> (but not both). 28 * <p/> 29 * Note that the source returned by <code>getSource()</code> includes the SOAP Body element itself. For the contents of 30 * the body, use <code>getPayloadSource()</code>. 31 * 32 * @author Arjen Poutsma 33 * @see SoapEnvelope#getBody() 34 * @see #getPayloadSource() 35 * @see #getPayloadResult() 36 * @see SoapFault 37 * @since 1.0.0 38 */ 39 public interface SoapBody extends SoapElement { 40 41 /** 42 * Returns a <code>Source</code> that represents the contents of the body. 43 * 44 * @return the message contents 45 * @see WebServiceMessage#getPayloadSource() 46 */ 47 Source getPayloadSource(); 48 49 /** 50 * Returns a <code>Result</code> that represents the contents of the body. 51 * <p/> 52 * Calling this method removes the current content of the body. 53 * 54 * @return the message contents 55 * @see WebServiceMessage#getPayloadResult() 56 */ 57 Result getPayloadResult(); 58 59 /** 60 * Adds a <code>MustUnderstand</code> fault to the body. A <code>MustUnderstand</code> is returned when a SOAP 61 * header with a <code>MustUnderstand</code> attribute is not understood. 62 * <p/> 63 * Adding a fault removes the current content of the body. 64 * 65 * @param faultStringOrReason the SOAP 1.1 fault string or SOAP 1.2 reason text 66 * @param locale the language of faultStringOrReason. Optional for SOAP 1.1 67 * @return the created <code>SoapFault</code> 68 */ 69 SoapFault addMustUnderstandFault(String faultStringOrReason, Locale locale) throws SoapFaultException; 70 71 /** 72 * Adds a <code>Client</code>/<code>Sender</code> fault to the body. For SOAP 1.1, this adds a fault with a 73 * <code>Client</code> fault code. For SOAP 1.2, this adds a fault with a <code>Sender</code> code. 74 * <p/> 75 * Adding a fault removes the current content of the body. 76 * 77 * @param faultStringOrReason the SOAP 1.1 fault string or SOAP 1.2 reason text 78 * @param locale the language of faultStringOrReason. Optional for SOAP 1.1 79 * @return the created <code>SoapFault</code> 80 */ 81 SoapFault addClientOrSenderFault(String faultStringOrReason, Locale locale) throws SoapFaultException; 82 83 /** 84 * Adds a <code>Server</code>/<code>Receiver</code> fault to the body. For SOAP 1.1, this adds a fault with a 85 * <code>Server</code> fault code. For SOAP 1.2, this adds a fault with a <code>Receiver</code> code. 86 * <p/> 87 * Adding a fault removes the current content of the body. 88 * 89 * @param faultStringOrReason the SOAP 1.1 fault string or SOAP 1.2 reason text 90 * @param locale the language of faultStringOrReason. Optional for SOAP 1.1 91 * @return the created <code>SoapFault</code> 92 */ 93 SoapFault addServerOrReceiverFault(String faultStringOrReason, Locale locale) throws SoapFaultException; 94 95 /** 96 * Adds a <code>VersionMismatch</code> fault to the body. 97 * <p/> 98 * Adding a fault removes the current content of the body. 99 * 100 * @param faultStringOrReason the SOAP 1.1 fault string or SOAP 1.2 reason text 101 * @param locale the language of faultStringOrReason. Optional for SOAP 1.1 102 * @return the created <code>SoapFault</code> 103 */ 104 SoapFault addVersionMismatchFault(String faultStringOrReason, Locale locale) throws SoapFaultException; 105 106 /** 107 * Indicates whether this body has a <code>SoapFault</code>. 108 * 109 * @return <code>true</code> if the body has a fault; <code>false</code> otherwise 110 */ 111 boolean hasFault(); 112 113 /** 114 * Returns the <code>SoapFault</code> of this body. 115 * 116 * @return the <code>SoapFault</code>, or <code>null</code> if none is present 117 */ 118 SoapFault getFault(); 119 }