| /* |
| * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved. |
| * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
| * |
| * This code is free software; you can redistribute it and/or modify it |
| * under the terms of the GNU General Public License version 2 only, as |
| * published by the Free Software Foundation. Oracle designates this |
| * particular file as subject to the "Classpath" exception as provided |
| * by Oracle in the LICENSE file that accompanied this code. |
| * |
| * This code is distributed in the hope that it will be useful, but WITHOUT |
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| * version 2 for more details (a copy is included in the LICENSE file that |
| * accompanied this code). |
| * |
| * You should have received a copy of the GNU General Public License version |
| * 2 along with this work; if not, write to the Free Software Foundation, |
| * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
| * |
| * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
| * or visit www.oracle.com if you need additional information or have any |
| * questions. |
| */ |
| |
| package javax.xml.ws; |
| |
| import javax.xml.transform.Source; |
| import javax.xml.bind.JAXBContext; |
| |
| /** The {@code LogicalMessage} interface represents a |
| * protocol agnostic XML message and contains methods that |
| * provide access to the payload of the message. |
| * |
| * @since 1.6, 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 {@code Source} that may be used to retrieve the entire |
| * message payload. |
| * |
| * <p>If the returned {@code Source} is an instance of |
| * {@code DOMSource}, then |
| * modifications to the encapsulated DOM tree change the message |
| * payload in-place, there is no need to susequently call |
| * {@code setPayload}. Other types of {@code Source} provide only |
| * read access to the message payload. |
| * |
| * @return The contained message payload; returns {@code 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 {@code setPayload}. |
| * |
| * @param context The JAXBContext that should be used to unmarshall |
| * the message payload |
| * @return The contained message payload; returns {@code 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); |
| } |