org.glassfish.jersey.message.internal
Class WriterInterceptorExecutor
java.lang.Object
org.glassfish.jersey.message.internal.WriterInterceptorExecutor
- All Implemented Interfaces:
- javax.ws.rs.ext.InterceptorContext, javax.ws.rs.ext.WriterInterceptorContext
public final class WriterInterceptorExecutor
- extends java.lang.Object
- implements javax.ws.rs.ext.WriterInterceptorContext
Represents writer interceptor chain executor for both client and server side.
It constructs wrapped interceptor chain and invokes it. At the end of the chain
a message body writer execution interceptor is inserted,
which writes entity to the output stream provided by the chain.
- Author:
- Miroslav Fuksa (miroslav.fuksa at oracle.com), Jakub Podlesak (jakub.podlesak at oracle.com)
|
Field Summary |
static java.lang.String |
INTERCEPTORS
Defines property, which is used to pass a list of writer interceptors
to the executor via PropertiesDelegate. |
|
Constructor Summary |
WriterInterceptorExecutor(java.lang.Object entity,
java.lang.Class<?> rawType,
java.lang.reflect.Type type,
java.lang.annotation.Annotation[] annotations,
javax.ws.rs.core.MediaType mediaType,
javax.ws.rs.core.MultivaluedMap<java.lang.String,java.lang.Object> headers,
PropertiesDelegate propertiesDelegate,
java.io.OutputStream entityStream,
MessageBodyWorkers workers,
boolean intercept)
Constructs a new executor to write given type to provided entityStream. |
| 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.ext.InterceptorContext |
getAnnotations, getGenericType, getMediaType, getProperty, getPropertyNames, getType, removeProperty, setAnnotations, setGenericType, setMediaType, setProperty, setType |
INTERCEPTORS
public static final java.lang.String INTERCEPTORS
- Defines property, which is used to pass a list of writer interceptors
to the executor via
PropertiesDelegate.
- See Also:
- Constant Field Values
WriterInterceptorExecutor
public WriterInterceptorExecutor(java.lang.Object entity,
java.lang.Class<?> rawType,
java.lang.reflect.Type type,
java.lang.annotation.Annotation[] annotations,
javax.ws.rs.core.MediaType mediaType,
javax.ws.rs.core.MultivaluedMap<java.lang.String,java.lang.Object> headers,
PropertiesDelegate propertiesDelegate,
java.io.OutputStream entityStream,
MessageBodyWorkers workers,
boolean intercept)
- Constructs a new executor to write given type to provided
entityStream.
List of interceptors to be used is taken from given workers instance
unless "jersey.runtime.writer.interceptors" property is set in propertiesDelegate.
If such a property is present, the executor tries to cast it to List<WriterInterceptor>
and the list is then used to build the interceptor chain.
- Parameters:
entity - entity object to be processed.rawType - raw Java entity type.type - generic Java entity type.annotations - array of annotations on the declaration of the artifact
that will be initialized with the produced instance. E.g. if the message
body is to be converted into a method parameter, this will be the
annotations on that parameter returned by
Method.getParameterAnnotations.mediaType - media type of the HTTP entity.headers - mutable HTTP headers associated with HTTP entity.propertiesDelegate - request-scoped properties delegate.entityStream - InputStream from which an entity will be read. The stream is not
closed after reading the entity.workers - Message body workers.intercept - if true, user interceptors will be executed. Otherwise only
exception wrapping interceptor will
be executed on the client side.
getNextInterceptor
public javax.ws.rs.ext.WriterInterceptor getNextInterceptor()
- Returns next
interceptor in the chain. Stateful method.
- Returns:
- Next interceptor.
proceed
public void proceed()
throws java.io.IOException
- Starts the interceptor chain execution.
- Specified by:
proceed in interface javax.ws.rs.ext.WriterInterceptorContext
- Throws:
java.io.IOException
getEntity
public java.lang.Object getEntity()
- Specified by:
getEntity in interface javax.ws.rs.ext.WriterInterceptorContext
setEntity
public void setEntity(java.lang.Object entity)
- Specified by:
setEntity in interface javax.ws.rs.ext.WriterInterceptorContext
getOutputStream
public java.io.OutputStream getOutputStream()
- Specified by:
getOutputStream in interface javax.ws.rs.ext.WriterInterceptorContext
setOutputStream
public void setOutputStream(java.io.OutputStream os)
- Specified by:
setOutputStream in interface javax.ws.rs.ext.WriterInterceptorContext
getHeaders
public javax.ws.rs.core.MultivaluedMap<java.lang.String,java.lang.Object> getHeaders()
- Specified by:
getHeaders in interface javax.ws.rs.ext.WriterInterceptorContext
getProperty
public java.lang.Object getProperty(java.lang.String name)
- Specified by:
getProperty in interface javax.ws.rs.ext.InterceptorContext
getPropertyNames
public java.util.Collection<java.lang.String> getPropertyNames()
- Specified by:
getPropertyNames in interface javax.ws.rs.ext.InterceptorContext
setProperty
public void setProperty(java.lang.String name,
java.lang.Object object)
- Specified by:
setProperty in interface javax.ws.rs.ext.InterceptorContext
removeProperty
public void removeProperty(java.lang.String name)
- Specified by:
removeProperty in interface javax.ws.rs.ext.InterceptorContext
getAnnotations
public java.lang.annotation.Annotation[] getAnnotations()
- Specified by:
getAnnotations in interface javax.ws.rs.ext.InterceptorContext
setAnnotations
public void setAnnotations(java.lang.annotation.Annotation[] annotations)
- Specified by:
setAnnotations in interface javax.ws.rs.ext.InterceptorContext
getType
public java.lang.Class getType()
- Specified by:
getType in interface javax.ws.rs.ext.InterceptorContext
setType
public void setType(java.lang.Class type)
- Specified by:
setType in interface javax.ws.rs.ext.InterceptorContext
getGenericType
public java.lang.reflect.Type getGenericType()
- Specified by:
getGenericType in interface javax.ws.rs.ext.InterceptorContext
setGenericType
public void setGenericType(java.lang.reflect.Type genericType)
- Specified by:
setGenericType in interface javax.ws.rs.ext.InterceptorContext
getMediaType
public javax.ws.rs.core.MediaType getMediaType()
- Specified by:
getMediaType in interface javax.ws.rs.ext.InterceptorContext
setMediaType
public void setMediaType(javax.ws.rs.core.MediaType mediaType)
- Specified by:
setMediaType in interface javax.ws.rs.ext.InterceptorContext
Copyright © 2007-2013 Oracle Corporation. All Rights Reserved. Use is subject to license terms.