public final class WriterInterceptorExecutor extends InterceptorExecutor<javax.ws.rs.ext.WriterInterceptor> implements javax.ws.rs.ext.WriterInterceptorContext, InjectionManagerSupplier
message body writer
execution interceptor is inserted,
which writes entity to the output stream provided by the chain.Modifier and Type | Class and Description |
---|---|
private class |
WriterInterceptorExecutor.TerminalWriterInterceptor
Terminal writer interceptor which choose the appropriate
MessageBodyWriter
and writes the entity to the output stream. |
private static class |
WriterInterceptorExecutor.UnCloseableOutputStream
MessageBodyWriter s should not close the given stream . |
Modifier and Type | Field and Description |
---|---|
private java.lang.Object |
entity |
private javax.ws.rs.core.MultivaluedMap<java.lang.String,java.lang.Object> |
headers |
private InjectionManager |
injectionManager |
private java.util.Iterator<javax.ws.rs.ext.WriterInterceptor> |
iterator |
private static java.util.logging.Logger |
LOGGER |
private java.io.OutputStream |
outputStream |
private int |
processedCount |
Constructor and Description |
---|
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,
java.lang.Iterable<javax.ws.rs.ext.WriterInterceptor> writerInterceptors,
InjectionManager injectionManager)
Constructs a new executor to write given type to provided
entityStream . |
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
getEntity() |
javax.ws.rs.core.MultivaluedMap<java.lang.String,java.lang.Object> |
getHeaders() |
InjectionManager |
getInjectionManager()
Get injection manager.
|
private javax.ws.rs.ext.WriterInterceptor |
getNextInterceptor()
Returns next
interceptor in the chain. |
java.io.OutputStream |
getOutputStream() |
(package private) int |
getProcessedCount()
Get number of processed interceptors.
|
void |
proceed()
Starts the interceptor chain execution.
|
void |
setEntity(java.lang.Object entity) |
void |
setOutputStream(java.io.OutputStream os) |
clearLastTracedInterceptor, getAnnotations, getGenericType, getMediaType, getProperty, getPropertyNames, getTracingLogger, getType, removeProperty, setAnnotations, setGenericType, setMediaType, setProperty, setType, traceAfter, traceBefore
private static final java.util.logging.Logger LOGGER
private java.io.OutputStream outputStream
private final javax.ws.rs.core.MultivaluedMap<java.lang.String,java.lang.Object> headers
private java.lang.Object entity
private final java.util.Iterator<javax.ws.rs.ext.WriterInterceptor> iterator
private int processedCount
private final InjectionManager injectionManager
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, java.lang.Iterable<javax.ws.rs.ext.WriterInterceptor> writerInterceptors, InjectionManager injectionManager)
entityStream
.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
.writerInterceptors
- Writer interceptors that are to be used to intercept writing of an entity.injectionManager
- injection manager.private javax.ws.rs.ext.WriterInterceptor getNextInterceptor()
interceptor
in the chain. Stateful method.public void proceed() throws java.io.IOException
proceed
in interface javax.ws.rs.ext.WriterInterceptorContext
java.io.IOException
public java.lang.Object getEntity()
getEntity
in interface javax.ws.rs.ext.WriterInterceptorContext
public void setEntity(java.lang.Object entity)
setEntity
in interface javax.ws.rs.ext.WriterInterceptorContext
public java.io.OutputStream getOutputStream()
getOutputStream
in interface javax.ws.rs.ext.WriterInterceptorContext
public void setOutputStream(java.io.OutputStream os)
setOutputStream
in interface javax.ws.rs.ext.WriterInterceptorContext
public javax.ws.rs.core.MultivaluedMap<java.lang.String,java.lang.Object> getHeaders()
getHeaders
in interface javax.ws.rs.ext.WriterInterceptorContext
int getProcessedCount()
public InjectionManager getInjectionManager()
InjectionManagerSupplier
getInjectionManager
in interface InjectionManagerSupplier