org.glassfish.jersey.server
Class ContainerRequest

java.lang.Object
  extended by org.glassfish.jersey.message.internal.InboundMessageContext
      extended by org.glassfish.jersey.server.ContainerRequest
All Implemented Interfaces:
javax.ws.rs.container.ContainerRequestContext, javax.ws.rs.core.HttpHeaders, javax.ws.rs.core.Request, PropertiesDelegate

public class ContainerRequest
extends InboundMessageContext
implements javax.ws.rs.container.ContainerRequestContext, javax.ws.rs.core.Request, javax.ws.rs.core.HttpHeaders, PropertiesDelegate

Jersey container request context.

An instance of the request context is passed by the container to the ApplicationHandler for each incoming client request.

Author:
Marek Potociar (marek.potociar at oracle.com)

Field Summary
 
Fields inherited from interface javax.ws.rs.core.HttpHeaders
ACCEPT, ACCEPT_CHARSET, ACCEPT_ENCODING, ACCEPT_LANGUAGE, ALLOW, AUTHORIZATION, CACHE_CONTROL, CONTENT_DISPOSITION, CONTENT_ENCODING, CONTENT_ID, CONTENT_LANGUAGE, CONTENT_LENGTH, CONTENT_LOCATION, CONTENT_TYPE, COOKIE, DATE, ETAG, EXPIRES, HOST, IF_MATCH, IF_MODIFIED_SINCE, IF_NONE_MATCH, IF_UNMODIFIED_SINCE, LAST_MODIFIED, LINK, LOCATION, RETRY_AFTER, SET_COOKIE, USER_AGENT, VARY, WWW_AUTHENTICATE
 
Constructor Summary
ContainerRequest(URI baseUri, URI requestUri, String httpMethod, javax.ws.rs.core.SecurityContext securityContext, PropertiesDelegate propertiesDelegate)
          Create new Jersey container request context.
 
Method Summary
 void abortWith(javax.ws.rs.core.Response response)
           
 javax.ws.rs.core.Response.ResponseBuilder evaluatePreconditions()
           
 javax.ws.rs.core.Response.ResponseBuilder evaluatePreconditions(Date lastModified)
           
 javax.ws.rs.core.Response.ResponseBuilder evaluatePreconditions(Date lastModified, javax.ws.rs.core.EntityTag eTag)
           
 javax.ws.rs.core.Response.ResponseBuilder evaluatePreconditions(javax.ws.rs.core.EntityTag eTag)
           
 javax.ws.rs.core.Response getAbortResponse()
          Get the request filter chain aborting response if set, or null otherwise.
 List<Locale> getAcceptableLanguages()
           
 List<javax.ws.rs.core.MediaType> getAcceptableMediaTypes()
           
 URI getBaseUri()
          Get base request URI.
 Map<String,javax.ws.rs.core.Cookie> getCookies()
           
 String getMethod()
           
 String getPath(boolean decode)
          Get the path of the current request relative to the application root (base) URI as a string.
 PropertiesDelegate getPropertiesDelegate()
          Get the underlying properties delegate.
 Object getProperty(String name)
           
 Collection<String> getPropertyNames()
           
 javax.ws.rs.core.Request getRequest()
           
 List<String> getRequestHeader(String name)
          Get the values of a HTTP request header.
 javax.ws.rs.core.MultivaluedMap<String,String> getRequestHeaders()
          Get the values of HTTP request headers.
 RequestScopedInitializer getRequestScopedInitializer()
          Get a custom container extensions initializer for the current request.
 URI getRequestUri()
          Get request URI.
 ContainerResponseWriter getResponseWriter()
          Get the container response writer for the current request.
 javax.ws.rs.core.SecurityContext getSecurityContext()
           
 ExtendedUriInfo getUriInfo()
           
 String getVaryValue()
          Get the value of HTTP Vary response header to be set in the response, or null if no value is to be set.
 void inResponseProcessing()
          Notify this request that the response created from this request is already being processed.
<T> T
readEntity(Class<T> rawType)
          Read entity from a context entity input stream.
<T> T
readEntity(Class<T> rawType, Annotation[] annotations)
          Read entity from a context entity input stream.
<T> T
readEntity(Class<T> rawType, Type type)
          Read entity from a context entity input stream.
<T> T
readEntity(Class<T> rawType, Type type, Annotation[] annotations)
          Read entity from a context entity input stream.
 void removeProperty(String name)
           
 javax.ws.rs.core.Variant selectVariant(List<javax.ws.rs.core.Variant> variants)
           
 void setEntityStream(InputStream input)
           
 void setMethod(String method)
           
 void setMethodWithoutException(String method)
          Like setMethod(String) but does not throw IllegalStateException if the method is invoked in other than pre-matching phase.
 void setProperty(String name, Object object)
           
 void setRequestScopedInitializer(RequestScopedInitializer requestScopedInitializer)
          Set a custom container extensions initializer for the current request.
 void setRequestUri(URI requestUri)
           
 void setRequestUri(URI baseUri, URI requestUri)
           
 void setSecurityContext(javax.ws.rs.core.SecurityContext context)
           
 void setWriter(ContainerResponseWriter responseWriter)
          Set the container response writer for the current request.
 void triggerEvent(RequestEvent.Type requestEventType)
          Trigger a new monitoring event for the current request.
 
Methods inherited from class org.glassfish.jersey.message.internal.InboundMessageContext
bufferEntity, close, getAllowedMethods, getDate, getEntityStream, getEntityTag, getHeaders, getHeaderString, getIfMatch, getIfNoneMatch, getLanguage, getLastModified, getLength, getLink, getLinkBuilder, getLinks, getLocation, getMediaType, getQualifiedAcceptableLanguages, getQualifiedAcceptableMediaTypes, getQualifiedAcceptCharset, getQualifiedAcceptEncoding, getRequestCookies, getResponseCookies, getWorkers, hasEntity, hasLink, header, headers, headers, headers, headers, readEntity, readEntity, readEntity, readEntity, remove, setReaderInterceptors, setWorkers
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface javax.ws.rs.container.ContainerRequestContext
getDate, getEntityStream, getHeaders, getHeaderString, getLanguage, getLength, getMediaType, hasEntity
 
Methods inherited from interface javax.ws.rs.core.HttpHeaders
getDate, getHeaderString, getLanguage, getLength, getMediaType
 

Constructor Detail

ContainerRequest

public ContainerRequest(URI baseUri,
                        URI requestUri,
                        String httpMethod,
                        javax.ws.rs.core.SecurityContext securityContext,
                        PropertiesDelegate propertiesDelegate)
Create new Jersey container request context.

Parameters:
baseUri - base application URI.
requestUri - request URI.
httpMethod - request HTTP method name.
securityContext - security context of the current request. Must not be null. The SecurityContext.getUserPrincipal() must return null if the current request has not been authenticated by the container.
propertiesDelegate - custom properties delegate to be used by the context.
Method Detail

getRequestScopedInitializer

public RequestScopedInitializer getRequestScopedInitializer()
Get a custom container extensions initializer for the current request.

The initializer is guaranteed to be run from within the request scope of the current request.

Returns:
custom container extensions initializer or null if not available.

setRequestScopedInitializer

public void setRequestScopedInitializer(RequestScopedInitializer requestScopedInitializer)
Set a custom container extensions initializer for the current request.

The initializer is guaranteed to be run from within the request scope of the current request.

Parameters:
requestScopedInitializer - custom container extensions initializer.

getResponseWriter

public ContainerResponseWriter getResponseWriter()
Get the container response writer for the current request.

Returns:
container response writer.

setWriter

public void setWriter(ContainerResponseWriter responseWriter)
Set the container response writer for the current request.

Parameters:
responseWriter - container response writer. Must not be null.

readEntity

public <T> T readEntity(Class<T> rawType)
Read entity from a context entity input stream.

Type Parameters:
T - entity Java object type.
Parameters:
rawType - raw Java entity type.
Returns:
entity read from a context entity input stream.

readEntity

public <T> T readEntity(Class<T> rawType,
                        Annotation[] annotations)
Read entity from a context entity input stream.

Type Parameters:
T - entity Java object type.
Parameters:
rawType - raw Java entity type.
annotations - entity annotations.
Returns:
entity read from a context entity input stream.

readEntity

public <T> T readEntity(Class<T> rawType,
                        Type type)
Read entity from a context entity input stream.

Type Parameters:
T - entity Java object type.
Parameters:
rawType - raw Java entity type.
type - generic Java entity type.
Returns:
entity read from a context entity input stream.

readEntity

public <T> T readEntity(Class<T> rawType,
                        Type type,
                        Annotation[] annotations)
Read entity from a context entity input stream.

Type Parameters:
T - entity Java object type.
Parameters:
rawType - raw Java entity type.
type - generic Java entity type.
annotations - entity annotations.
Returns:
entity read from a context entity input stream.

getProperty

public Object getProperty(String name)
Specified by:
getProperty in interface javax.ws.rs.container.ContainerRequestContext
Specified by:
getProperty in interface PropertiesDelegate

getPropertyNames

public Collection<String> getPropertyNames()
Specified by:
getPropertyNames in interface javax.ws.rs.container.ContainerRequestContext
Specified by:
getPropertyNames in interface PropertiesDelegate

setProperty

public void setProperty(String name,
                        Object object)
Specified by:
setProperty in interface javax.ws.rs.container.ContainerRequestContext
Specified by:
setProperty in interface PropertiesDelegate

removeProperty

public void removeProperty(String name)
Specified by:
removeProperty in interface javax.ws.rs.container.ContainerRequestContext
Specified by:
removeProperty in interface PropertiesDelegate

getPropertiesDelegate

public PropertiesDelegate getPropertiesDelegate()
Get the underlying properties delegate.

Returns:
underlying properties delegate.

getUriInfo

public ExtendedUriInfo getUriInfo()
Specified by:
getUriInfo in interface javax.ws.rs.container.ContainerRequestContext

getBaseUri

public URI getBaseUri()
Get base request URI.

Returns:
base request URI.

getRequestUri

public URI getRequestUri()
Get request URI.

Returns:
request URI.

setRequestUri

public void setRequestUri(URI requestUri)
                   throws IllegalStateException
Specified by:
setRequestUri in interface javax.ws.rs.container.ContainerRequestContext
Throws:
IllegalStateException

setRequestUri

public void setRequestUri(URI baseUri,
                          URI requestUri)
                   throws IllegalStateException
Specified by:
setRequestUri in interface javax.ws.rs.container.ContainerRequestContext
Throws:
IllegalStateException

getPath

public String getPath(boolean decode)
Get the path of the current request relative to the application root (base) URI as a string.

Parameters:
decode - controls whether sequences of escaped octets are decoded (true) or not (false).
Returns:
relative request path.

getMethod

public String getMethod()
Specified by:
getMethod in interface javax.ws.rs.container.ContainerRequestContext
Specified by:
getMethod in interface javax.ws.rs.core.Request

setMethod

public void setMethod(String method)
               throws IllegalStateException
Specified by:
setMethod in interface javax.ws.rs.container.ContainerRequestContext
Throws:
IllegalStateException

triggerEvent

public void triggerEvent(RequestEvent.Type requestEventType)
Trigger a new monitoring event for the current request.

Parameters:
requestEventType - request event type.

setMethodWithoutException

public void setMethodWithoutException(String method)
Like setMethod(String) but does not throw IllegalStateException if the method is invoked in other than pre-matching phase.

Parameters:
method - HTTP method.

getSecurityContext

public javax.ws.rs.core.SecurityContext getSecurityContext()
Specified by:
getSecurityContext in interface javax.ws.rs.container.ContainerRequestContext

setSecurityContext

public void setSecurityContext(javax.ws.rs.core.SecurityContext context)
Specified by:
setSecurityContext in interface javax.ws.rs.container.ContainerRequestContext

setEntityStream

public void setEntityStream(InputStream input)
Specified by:
setEntityStream in interface javax.ws.rs.container.ContainerRequestContext
Overrides:
setEntityStream in class InboundMessageContext

getRequest

public javax.ws.rs.core.Request getRequest()
Specified by:
getRequest in interface javax.ws.rs.container.ContainerRequestContext

abortWith

public void abortWith(javax.ws.rs.core.Response response)
Specified by:
abortWith in interface javax.ws.rs.container.ContainerRequestContext

inResponseProcessing

public void inResponseProcessing()
Notify this request that the response created from this request is already being processed. This means that the request processing phase has finished and this request can be used only in the request processing phase (for example in ContainerResponseFilter).

The request can be used for processing of more than one response (in async cases). Then this method should be called when the first response is created from this request. Multiple calls to this method has the same effect as calling the method only once.


getAbortResponse

public javax.ws.rs.core.Response getAbortResponse()
Get the request filter chain aborting response if set, or null otherwise.

Returns:
request filter chain aborting response if set, or null otherwise.

getCookies

public Map<String,javax.ws.rs.core.Cookie> getCookies()
Specified by:
getCookies in interface javax.ws.rs.container.ContainerRequestContext
Specified by:
getCookies in interface javax.ws.rs.core.HttpHeaders

getAcceptableMediaTypes

public List<javax.ws.rs.core.MediaType> getAcceptableMediaTypes()
Specified by:
getAcceptableMediaTypes in interface javax.ws.rs.container.ContainerRequestContext
Specified by:
getAcceptableMediaTypes in interface javax.ws.rs.core.HttpHeaders

getAcceptableLanguages

public List<Locale> getAcceptableLanguages()
Specified by:
getAcceptableLanguages in interface javax.ws.rs.container.ContainerRequestContext
Specified by:
getAcceptableLanguages in interface javax.ws.rs.core.HttpHeaders

selectVariant

public javax.ws.rs.core.Variant selectVariant(List<javax.ws.rs.core.Variant> variants)
                                       throws IllegalArgumentException
Specified by:
selectVariant in interface javax.ws.rs.core.Request
Throws:
IllegalArgumentException

getVaryValue

public String getVaryValue()
Get the value of HTTP Vary response header to be set in the response, or null if no value is to be set.

Returns:
value of HTTP Vary response header to be set in the response if available, null otherwise.

evaluatePreconditions

public javax.ws.rs.core.Response.ResponseBuilder evaluatePreconditions(javax.ws.rs.core.EntityTag eTag)
Specified by:
evaluatePreconditions in interface javax.ws.rs.core.Request

evaluatePreconditions

public javax.ws.rs.core.Response.ResponseBuilder evaluatePreconditions(Date lastModified)
Specified by:
evaluatePreconditions in interface javax.ws.rs.core.Request

evaluatePreconditions

public javax.ws.rs.core.Response.ResponseBuilder evaluatePreconditions(Date lastModified,
                                                                       javax.ws.rs.core.EntityTag eTag)
Specified by:
evaluatePreconditions in interface javax.ws.rs.core.Request

evaluatePreconditions

public javax.ws.rs.core.Response.ResponseBuilder evaluatePreconditions()
Specified by:
evaluatePreconditions in interface javax.ws.rs.core.Request

getRequestHeader

public List<String> getRequestHeader(String name)
Get the values of a HTTP request header. The returned List is read-only. This is a shortcut for getRequestHeaders().get(name).

Specified by:
getRequestHeader in interface javax.ws.rs.core.HttpHeaders
Parameters:
name - the header name, case insensitive.
Returns:
a read-only list of header values.
Throws:
IllegalStateException - if called outside the scope of a request.

getRequestHeaders

public javax.ws.rs.core.MultivaluedMap<String,String> getRequestHeaders()
Get the values of HTTP request headers. The returned Map is case-insensitive wrt. keys and is read-only. The method never returns null.

Specified by:
getRequestHeaders in interface javax.ws.rs.core.HttpHeaders
Returns:
a read-only map of header names and values.
Throws:
IllegalStateException - if called outside the scope of a request.


Copyright © 2007-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.