/* * Copyright (c) 2005, 2017, 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.handler; import java.util.Map; /** * The interface {@code MessageContext} abstracts the message * context that is processed by a handler in the {@code handle} * method. * *

The {@code MessageContext} interface provides methods to * manage a property set. {@code MessageContext} properties * enable handlers in a handler chain to share processing related * state. * * @since 1.6, JAX-WS 2.0 */ public interface MessageContext extends Map { /** * Standard property: message direction, {@code true} for * outbound messages, {@code false} for inbound. *

Type: boolean */ public static final String MESSAGE_OUTBOUND_PROPERTY = "javax.xml.ws.handler.message.outbound"; /** * Standard property: Map of attachments to a message for the inbound * message, key is the MIME Content-ID, value is a DataHandler. *

Type: {@code java.util.Map} */ public static final String INBOUND_MESSAGE_ATTACHMENTS = "javax.xml.ws.binding.attachments.inbound"; /** * Standard property: Map of attachments to a message for the outbound * message, key is the MIME Content-ID, value is a DataHandler. *

Type: {@code java.util.Map} */ public static final String OUTBOUND_MESSAGE_ATTACHMENTS = "javax.xml.ws.binding.attachments.outbound"; /** * Standard property: input source for WSDL document. *

Type: org.xml.sax.InputSource */ public static final String WSDL_DESCRIPTION = "javax.xml.ws.wsdl.description"; /** * Standard property: name of WSDL service. *

Type: javax.xml.namespace.QName */ public static final String WSDL_SERVICE = "javax.xml.ws.wsdl.service"; /** * Standard property: name of WSDL port. *

Type: javax.xml.namespace.QName */ public static final String WSDL_PORT = "javax.xml.ws.wsdl.port"; /** * Standard property: name of wsdl interface (2.0) or port type (1.1). *

Type: javax.xml.namespace.QName */ public static final String WSDL_INTERFACE = "javax.xml.ws.wsdl.interface"; /** * Standard property: name of WSDL operation. *

Type: javax.xml.namespace.QName */ public static final String WSDL_OPERATION = "javax.xml.ws.wsdl.operation"; /** * Standard property: HTTP response status code. *

Type: java.lang.Integer */ public static final String HTTP_RESPONSE_CODE = "javax.xml.ws.http.response.code"; /** * Standard property: HTTP request headers. *

Type: {@code java.util.Map>} */ public static final String HTTP_REQUEST_HEADERS = "javax.xml.ws.http.request.headers"; /** * Standard property: HTTP response headers. *

Type: {@code java.util.Map>} */ public static final String HTTP_RESPONSE_HEADERS = "javax.xml.ws.http.response.headers"; /** * Standard property: HTTP request method. *

Type: java.lang.String */ public static final String HTTP_REQUEST_METHOD = "javax.xml.ws.http.request.method"; /** * Standard property: servlet request object. *

Type: javax.servlet.http.HttpServletRequest */ public static final String SERVLET_REQUEST = "javax.xml.ws.servlet.request"; /** * Standard property: servlet response object. *

Type: javax.servlet.http.HttpServletResponse */ public static final String SERVLET_RESPONSE = "javax.xml.ws.servlet.response"; /** * Standard property: servlet context object. *

Type: javax.servlet.ServletContext */ public static final String SERVLET_CONTEXT = "javax.xml.ws.servlet.context"; /** * Standard property: Query string for request. *

Type: String **/ public static final String QUERY_STRING = "javax.xml.ws.http.request.querystring"; /** * Standard property: Request Path Info *

Type: String */ public static final String PATH_INFO = "javax.xml.ws.http.request.pathinfo"; /** * Standard property: WS Addressing Reference Parameters. * The list MUST include all SOAP headers marked with the * wsa:IsReferenceParameter="true" attribute. *

Type: {@code List} * * @since 1.6, JAX-WS 2.1 */ public static final String REFERENCE_PARAMETERS = "javax.xml.ws.reference.parameters"; /** * Property scope. Properties scoped as {@code APPLICATION} are * visible to handlers, * client applications and service endpoints; properties scoped as * {@code HANDLER} * are only normally visible to handlers. */ public enum Scope { /** * Application visibility. */ APPLICATION, /** * Handler visibility. */ HANDLER}; /** * Sets the scope of a property. * * @param name Name of the property associated with the * {@code MessageContext} * @param scope Desired scope of the property * @throws java.lang.IllegalArgumentException if an illegal * property name is specified */ public void setScope(String name, Scope scope); /** * Gets the scope of a property. * * @param name Name of the property * @return Scope of the property * @throws java.lang.IllegalArgumentException if a non-existant * property name is specified */ public Scope getScope(String name); }