/* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package javax.xml.ws; import javax.xml.transform.Source; import javax.xml.bind.JAXBContext; /** The LogicalMessage interface represents a * protocol agnostic XML message and contains methods that * provide access to the payload of the message. * * @since JAX-WS 2.0 **/ public interface LogicalMessage { /** Gets the message payload as an XML source, may be called * multiple times on the same LogicalMessage instance, always * returns a new Source that may be used to retrieve the entire * message payload. * *

If the returned Source is an instance of * DOMSource, then * modifications to the encapsulated DOM tree change the message * payload in-place, there is no need to susequently call * setPayload. Other types of Source provide only * read access to the message payload. * * @return The contained message payload; returns null if no * payload is present in this message. **/ public Source getPayload(); /** Sets the message payload * * @param payload message payload * @throws WebServiceException If any error during the setting * of the payload in this message * @throws java.lang.UnsupportedOperationException If this * operation is not supported **/ public void setPayload(Source payload); /** Gets the message payload as a JAXB object. Note that there is no * connection between the returned object and the message payload, * changes to the payload require calling setPayload. * * @param context The JAXBContext that should be used to unmarshall * the message payload * @return The contained message payload; returns null if no * payload is present in this message * @throws WebServiceException If an error occurs when using a supplied * JAXBContext to unmarshall the payload. The cause of * the WebServiceException is the original JAXBException. **/ public Object getPayload(JAXBContext context); /** Sets the message payload * * @param payload message payload * @param context The JAXBContext that should be used to marshall * the payload * @throws java.lang.UnsupportedOperationException If this * operation is not supported * @throws WebServiceException If an error occurs when using the supplied * JAXBContext to marshall the payload. The cause of * the WebServiceException is the original JAXBException. **/ public void setPayload(Object payload, JAXBContext context); }