/* * Copyright 2006 the original author or authors. * * Licensed 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 org.springframework.ws.soap; import java.util.Locale; import javax.xml.transform.Result; import javax.xml.transform.Source; import org.springframework.ws.WebServiceMessage; /** * Represents the {@code Body} element in a SOAP message. A SOAP body contains the <strong>payload</strong> of the * message. This payload can be custom XML, or a {@code SoapFault} (but not both). * * <p>Note that the source returned by {@code getSource()} includes the SOAP Body element itself. For the contents of * the body, use {@code getPayloadSource()}. * * @author Arjen Poutsma * @see SoapEnvelope#getBody() * @see #getPayloadSource() * @see #getPayloadResult() * @see SoapFault * @since 1.0.0 */ public interface SoapBody extends SoapElement { /** * Returns a {@code Source} that represents the contents of the body. * * @return the message contents * @see WebServiceMessage#getPayloadSource() */ Source getPayloadSource(); /** * Returns a {@code Result} that represents the contents of the body. * * <p>Calling this method removes the current content of the body. * * @return the message contents * @see WebServiceMessage#getPayloadResult() */ Result getPayloadResult(); /** * Adds a {@code MustUnderstand} fault to the body. A {@code MustUnderstand} is returned when a SOAP * header with a {@code MustUnderstand} attribute is not understood. * * <p>Adding a fault removes the current content of the body. * * @param faultStringOrReason the SOAP 1.1 fault string or SOAP 1.2 reason text * @param locale the language of faultStringOrReason. Optional for SOAP 1.1 * @return the created {@code SoapFault} */ SoapFault addMustUnderstandFault(String faultStringOrReason, Locale locale) throws SoapFaultException; /** * Adds a {@code Client}/{@code Sender} fault to the body. For SOAP 1.1, this adds a fault with a * {@code Client} fault code. For SOAP 1.2, this adds a fault with a {@code Sender} code. * * <p>Adding a fault removes the current content of the body. * * @param faultStringOrReason the SOAP 1.1 fault string or SOAP 1.2 reason text * @param locale the language of faultStringOrReason. Optional for SOAP 1.1 * @return the created {@code SoapFault} */ SoapFault addClientOrSenderFault(String faultStringOrReason, Locale locale) throws SoapFaultException; /** * Adds a {@code Server}/{@code Receiver} fault to the body. For SOAP 1.1, this adds a fault with a * {@code Server} fault code. For SOAP 1.2, this adds a fault with a {@code Receiver} code. * * <p>Adding a fault removes the current content of the body. * * @param faultStringOrReason the SOAP 1.1 fault string or SOAP 1.2 reason text * @param locale the language of faultStringOrReason. Optional for SOAP 1.1 * @return the created {@code SoapFault} */ SoapFault addServerOrReceiverFault(String faultStringOrReason, Locale locale) throws SoapFaultException; /** * Adds a {@code VersionMismatch} fault to the body. * * <p>Adding a fault removes the current content of the body. * * @param faultStringOrReason the SOAP 1.1 fault string or SOAP 1.2 reason text * @param locale the language of faultStringOrReason. Optional for SOAP 1.1 * @return the created {@code SoapFault} */ SoapFault addVersionMismatchFault(String faultStringOrReason, Locale locale) throws SoapFaultException; /** * Indicates whether this body has a {@code SoapFault}. * * @return {@code true} if the body has a fault; {@code false} otherwise */ boolean hasFault(); /** * Returns the {@code SoapFault} of this body. * * @return the {@code SoapFault}, or {@code null} if none is present */ SoapFault getFault(); }