public abstract class InboundMessageContext
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
private static class |
InboundMessageContext.EntityContent
Input stream and its state.
|
| Modifier and Type | Field and Description |
|---|---|
private static java.io.InputStream |
EMPTY |
private static java.lang.annotation.Annotation[] |
EMPTY_ANNOTATIONS |
private InboundMessageContext.EntityContent |
entityContent |
private javax.ws.rs.core.MultivaluedMap<java.lang.String,java.lang.String> |
headers |
private boolean |
translateNce |
private static java.util.List<AcceptableMediaType> |
WILDCARD_ACCEPTABLE_TYPE_SINGLETON_LIST |
private MessageBodyWorkers |
workers |
| Constructor and Description |
|---|
InboundMessageContext()
Create new inbound message context.
|
InboundMessageContext(boolean translateNce)
Create new inbound message context.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
bufferEntity()
Buffer the entity stream (if not empty).
|
void |
close()
Closes the underlying content stream.
|
private static HeaderValueException |
exception(java.lang.String headerName,
java.lang.Object headerValue,
java.lang.Exception e) |
java.util.Set<java.lang.String> |
getAllowedMethods()
Get the allowed HTTP methods from the Allow HTTP header.
|
java.util.Date |
getDate()
Get message date.
|
java.io.InputStream |
getEntityStream()
Get the entity input stream.
|
javax.ws.rs.core.EntityTag |
getEntityTag()
Get the entity tag.
|
javax.ws.rs.core.MultivaluedMap<java.lang.String,java.lang.String> |
getHeaders()
Get the mutable message headers multivalued map.
|
java.lang.String |
getHeaderString(java.lang.String name)
Get a message header as a single string value.
|
java.util.Set<MatchingEntityTag> |
getIfMatch()
Get If-Match header.
|
java.util.Set<MatchingEntityTag> |
getIfNoneMatch()
Get If-None-Match header.
|
java.util.Locale |
getLanguage()
Get the language of the entity.
|
java.util.Date |
getLastModified()
Get the last modified date.
|
int |
getLength()
Get Content-Length value.
|
javax.ws.rs.core.Link |
getLink(java.lang.String relation)
Get the link for the relation.
|
javax.ws.rs.core.Link.Builder |
getLinkBuilder(java.lang.String relation)
Convenience method that returns a
Link.Builder
for the relation. |
java.util.Set<javax.ws.rs.core.Link> |
getLinks()
Get the links attached to the message as header.
|
java.net.URI |
getLocation()
Get the location.
|
javax.ws.rs.core.MediaType |
getMediaType()
Get the media type of the entity.
|
java.util.List<AcceptableLanguageTag> |
getQualifiedAcceptableLanguages()
Get a list of languages that are acceptable for the message.
|
java.util.List<AcceptableMediaType> |
getQualifiedAcceptableMediaTypes()
Get a list of media types that are acceptable for a request.
|
java.util.List<AcceptableToken> |
getQualifiedAcceptCharset()
Get the list of language tag from the "Accept-Charset" of an HTTP request.
|
java.util.List<AcceptableToken> |
getQualifiedAcceptEncoding()
Get the list of language tag from the "Accept-Charset" of an HTTP request.
|
protected abstract java.lang.Iterable<javax.ws.rs.ext.ReaderInterceptor> |
getReaderInterceptors()
Get reader interceptors bound to this context.
|
java.util.Map<java.lang.String,javax.ws.rs.core.Cookie> |
getRequestCookies()
Get any cookies that accompanied the request.
|
java.util.Map<java.lang.String,javax.ws.rs.core.NewCookie> |
getResponseCookies()
Get any new cookies set on the response message.
|
MessageBodyWorkers |
getWorkers()
Get context message body workers.
|
boolean |
hasEntity()
Check if there is a non-empty entity input stream is available in the
message.
|
boolean |
hasLink(java.lang.String relation)
Check if link for relation exists.
|
InboundMessageContext |
header(java.lang.String name,
java.lang.Object value)
Add a new header value.
|
InboundMessageContext |
headers(java.util.Map<java.lang.String,java.util.List<java.lang.String>> newHeaders)
Add new headers.
|
InboundMessageContext |
headers(javax.ws.rs.core.MultivaluedMap<java.lang.String,java.lang.String> newHeaders)
Add new headers.
|
InboundMessageContext |
headers(java.lang.String name,
java.lang.Iterable<?> values)
Add new header values.
|
InboundMessageContext |
headers(java.lang.String name,
java.lang.Object... values)
Add new header values.
|
private static java.util.List<java.lang.String> |
iterableToList(java.lang.Iterable<?> values) |
<T> T |
readEntity(java.lang.Class<T> rawType,
java.lang.annotation.Annotation[] annotations,
PropertiesDelegate propertiesDelegate)
Read entity from a context entity input stream.
|
<T> T |
readEntity(java.lang.Class<T> rawType,
PropertiesDelegate propertiesDelegate)
Read entity from a context entity input stream.
|
<T> T |
readEntity(java.lang.Class<T> rawType,
java.lang.reflect.Type type,
java.lang.annotation.Annotation[] annotations,
PropertiesDelegate propertiesDelegate)
Read entity from a context entity input stream.
|
<T> T |
readEntity(java.lang.Class<T> rawType,
java.lang.reflect.Type type,
PropertiesDelegate propertiesDelegate)
Read entity from a context entity input stream.
|
InboundMessageContext |
remove(java.lang.String name)
Remove a header.
|
void |
setEntityStream(java.io.InputStream input)
Set a new entity input stream.
|
void |
setWorkers(MessageBodyWorkers workers)
Set context message body workers.
|
private <T> T |
singleHeader(java.lang.String name,
com.google.common.base.Function<java.lang.String,T> converter,
boolean convertNull)
Get a single typed header value.
|
private static final java.io.InputStream EMPTY
private static final java.lang.annotation.Annotation[] EMPTY_ANNOTATIONS
private static final java.util.List<AcceptableMediaType> WILDCARD_ACCEPTABLE_TYPE_SINGLETON_LIST
private final javax.ws.rs.core.MultivaluedMap<java.lang.String,java.lang.String> headers
private final InboundMessageContext.EntityContent entityContent
private final boolean translateNce
private MessageBodyWorkers workers
public InboundMessageContext()
public InboundMessageContext(boolean translateNce)
translateNce - if true, the NoContentException thrown by a
selected message body reader will be translated into a BadRequestException
as required by JAX-RS specification on the server side.public InboundMessageContext header(java.lang.String name, java.lang.Object value)
name - header name.value - header value.public InboundMessageContext headers(java.lang.String name, java.lang.Object... values)
name - header name.values - header values.public InboundMessageContext headers(java.lang.String name, java.lang.Iterable<?> values)
name - header name.values - header values.public InboundMessageContext headers(javax.ws.rs.core.MultivaluedMap<java.lang.String,java.lang.String> newHeaders)
newHeaders - new headers.public InboundMessageContext headers(java.util.Map<java.lang.String,java.util.List<java.lang.String>> newHeaders)
newHeaders - new headers.public InboundMessageContext remove(java.lang.String name)
name - header name.private static java.util.List<java.lang.String> iterableToList(java.lang.Iterable<?> values)
public java.lang.String getHeaderString(java.lang.String name)
RuntimeDelegate.HeaderDelegate if one is available
via RuntimeDelegate.createHeaderDelegate(java.lang.Class)
for the header value class or using its toString method if a header
delegate is not available.name - the message header.null is returned. If the message header is present but has no
value then the empty string is returned. If the message header is present
more than once then the values of joined together and separated by a ','
character.private <T> T singleHeader(java.lang.String name,
com.google.common.base.Function<java.lang.String,T> converter,
boolean convertNull)
name - header name.converter - from string conversion function. Is expected to throw ProcessingException
if conversion fails.convertNull - if true this method calls the provided converter even for null. Otherwise this
method returns the null without calling the converter.null if not present.private static HeaderValueException exception(java.lang.String headerName, java.lang.Object headerValue, java.lang.Exception e)
public javax.ws.rs.core.MultivaluedMap<java.lang.String,java.lang.String> getHeaders()
public java.util.Date getDate()
null if not present.public java.util.Set<MatchingEntityTag> getIfMatch()
null if not present.public java.util.Set<MatchingEntityTag> getIfNoneMatch()
null if not present.public java.util.Locale getLanguage()
null if not specified.public int getLength()
public javax.ws.rs.core.MediaType getMediaType()
null if not specified (e.g. there's no
message entity).public java.util.List<AcceptableMediaType> getQualifiedAcceptableMediaTypes()
public java.util.List<AcceptableLanguageTag> getQualifiedAcceptableLanguages()
public java.util.List<AcceptableToken> getQualifiedAcceptCharset()
public java.util.List<AcceptableToken> getQualifiedAcceptEncoding()
public java.util.Map<java.lang.String,javax.ws.rs.core.Cookie> getRequestCookies()
Cookie.public java.util.Set<java.lang.String> getAllowedMethods()
public java.util.Map<java.lang.String,javax.ws.rs.core.NewCookie> getResponseCookies()
new cookie.public javax.ws.rs.core.EntityTag getEntityTag()
null if not present.public java.util.Date getLastModified()
null if not present.public java.net.URI getLocation()
null if not present.public java.util.Set<javax.ws.rs.core.Link> getLinks()
Set if no links are present. Never
returns null.public boolean hasLink(java.lang.String relation)
relation - link relation.true if the for the relation link exists, false
otherwise.public javax.ws.rs.core.Link getLink(java.lang.String relation)
relation - link relation.null if not present.public javax.ws.rs.core.Link.Builder getLinkBuilder(java.lang.String relation)
Link.Builder
for the relation.relation - link relation.null if not
present.public MessageBodyWorkers getWorkers()
public void setWorkers(MessageBodyWorkers workers)
workers - context message body workers.public boolean hasEntity()
true if the entity is present, returns
false otherwise.true if there is an entity present in the message,
false otherwise.public java.io.InputStream getEntityStream()
public void setEntityStream(java.io.InputStream input)
input - new entity input stream.public <T> T readEntity(java.lang.Class<T> rawType,
PropertiesDelegate propertiesDelegate)
T - entity Java object type.rawType - raw Java entity type.propertiesDelegate - request-scoped properties delegate.public <T> T readEntity(java.lang.Class<T> rawType,
java.lang.annotation.Annotation[] annotations,
PropertiesDelegate propertiesDelegate)
T - entity Java object type.rawType - raw Java entity type.annotations - entity annotations.propertiesDelegate - request-scoped properties delegate.public <T> T readEntity(java.lang.Class<T> rawType,
java.lang.reflect.Type type,
PropertiesDelegate propertiesDelegate)
T - entity Java object type.rawType - raw Java entity type.type - generic Java entity type.propertiesDelegate - request-scoped properties delegate.public <T> T readEntity(java.lang.Class<T> rawType,
java.lang.reflect.Type type,
java.lang.annotation.Annotation[] annotations,
PropertiesDelegate propertiesDelegate)
T - entity Java object type.rawType - raw Java entity type.type - generic Java entity type.annotations - entity annotations.propertiesDelegate - request-scoped properties delegate.public boolean bufferEntity()
throws javax.ws.rs.ProcessingException
true if the entity input stream was successfully buffered.javax.ws.rs.ProcessingException - in case of an IO error.public void close()
protected abstract java.lang.Iterable<javax.ws.rs.ext.ReaderInterceptor> getReaderInterceptors()
Interceptors will be used when one of the readEntity methods is invoked.