blob: 76c5e5e1d5459f6a41d7788954168c0fa7699e18 [file] [log] [blame]
/*
* 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.
*
* <p>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<String, Object> {
/**
* Standard property: message direction, {@code true} for
* outbound messages, {@code false} for inbound.
* <p>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.
* <p>Type: {@code java.util.Map<String, DataHandler>}
*/
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.
* <p>Type: {@code java.util.Map<String, DataHandler>}
*/
public static final String OUTBOUND_MESSAGE_ATTACHMENTS =
"javax.xml.ws.binding.attachments.outbound";
/**
* Standard property: input source for WSDL document.
* <p>Type: org.xml.sax.InputSource
*/
public static final String WSDL_DESCRIPTION =
"javax.xml.ws.wsdl.description";
/**
* Standard property: name of WSDL service.
* <p>Type: javax.xml.namespace.QName
*/
public static final String WSDL_SERVICE =
"javax.xml.ws.wsdl.service";
/**
* Standard property: name of WSDL port.
* <p>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).
* <p>Type: javax.xml.namespace.QName
*/
public static final String WSDL_INTERFACE =
"javax.xml.ws.wsdl.interface";
/**
* Standard property: name of WSDL operation.
* <p>Type: javax.xml.namespace.QName
*/
public static final String WSDL_OPERATION =
"javax.xml.ws.wsdl.operation";
/**
* Standard property: HTTP response status code.
* <p>Type: java.lang.Integer
*/
public static final String HTTP_RESPONSE_CODE =
"javax.xml.ws.http.response.code";
/**
* Standard property: HTTP request headers.
* <p>Type: {@code java.util.Map<java.lang.String, java.util.List<java.lang.String>>}
*/
public static final String HTTP_REQUEST_HEADERS =
"javax.xml.ws.http.request.headers";
/**
* Standard property: HTTP response headers.
* <p>Type: {@code java.util.Map<java.lang.String, java.util.List<java.lang.String>>}
*/
public static final String HTTP_RESPONSE_HEADERS =
"javax.xml.ws.http.response.headers";
/**
* Standard property: HTTP request method.
* <p>Type: java.lang.String
*/
public static final String HTTP_REQUEST_METHOD =
"javax.xml.ws.http.request.method";
/**
* Standard property: servlet request object.
* <p>Type: javax.servlet.http.HttpServletRequest
*/
public static final String SERVLET_REQUEST =
"javax.xml.ws.servlet.request";
/**
* Standard property: servlet response object.
* <p>Type: javax.servlet.http.HttpServletResponse
*/
public static final String SERVLET_RESPONSE =
"javax.xml.ws.servlet.response";
/**
* Standard property: servlet context object.
* <p>Type: javax.servlet.ServletContext
*/
public static final String SERVLET_CONTEXT =
"javax.xml.ws.servlet.context";
/**
* Standard property: Query string for request.
* <p>Type: String
**/
public static final String QUERY_STRING =
"javax.xml.ws.http.request.querystring";
/**
* Standard property: Request Path Info
* <p>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.
* <p>Type: {@code List<Element>}
*
* @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);
}