Class WriterInterceptorExecutor
- java.lang.Object
-
- org.glassfish.jersey.message.internal.InterceptorExecutor<javax.ws.rs.ext.WriterInterceptor>
-
- org.glassfish.jersey.message.internal.WriterInterceptorExecutor
-
- All Implemented Interfaces:
javax.ws.rs.ext.InterceptorContext,javax.ws.rs.ext.WriterInterceptorContext,InjectionManagerSupplier,PropertiesDelegate
public final class WriterInterceptorExecutor extends InterceptorExecutor<javax.ws.rs.ext.WriterInterceptor> implements javax.ws.rs.ext.WriterInterceptorContext, InjectionManagerSupplier
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 amessage body writerexecution interceptor is inserted, which writes entity to the output stream provided by the chain.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private classWriterInterceptorExecutor.TerminalWriterInterceptorTerminal writer interceptor which choose the appropriateMessageBodyWriterand writes the entity to the output stream.private static classWriterInterceptorExecutor.UnCloseableOutputStreamMessageBodyWriters should not close the givenstream.
-
Field Summary
Fields Modifier and Type Field Description private java.lang.Objectentityprivate javax.ws.rs.core.MultivaluedMap<java.lang.String,java.lang.Object>headersprivate InjectionManagerinjectionManagerprivate java.util.Iterator<javax.ws.rs.ext.WriterInterceptor>iteratorprivate static java.util.logging.LoggerLOGGERprivate java.io.OutputStreamoutputStreamprivate intprocessedCount
-
Constructor Summary
Constructors Constructor 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 providedentityStream.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.ObjectgetEntity()javax.ws.rs.core.MultivaluedMap<java.lang.String,java.lang.Object>getHeaders()InjectionManagergetInjectionManager()Get injection manager.private javax.ws.rs.ext.WriterInterceptorgetNextInterceptor()Returns nextinterceptorin the chain.java.io.OutputStreamgetOutputStream()(package private) intgetProcessedCount()Get number of processed interceptors.voidproceed()Starts the interceptor chain execution.voidsetEntity(java.lang.Object entity)voidsetOutputStream(java.io.OutputStream os)-
Methods inherited from class org.glassfish.jersey.message.internal.InterceptorExecutor
clearLastTracedInterceptor, getAnnotations, getGenericType, getMediaType, getProperty, getPropertyNames, getTracingLogger, getType, removeProperty, setAnnotations, setGenericType, setMediaType, setProperty, setType, traceAfter, traceBefore
-
-
-
-
Field Detail
-
LOGGER
private static final java.util.logging.Logger LOGGER
-
outputStream
private java.io.OutputStream outputStream
-
headers
private final javax.ws.rs.core.MultivaluedMap<java.lang.String,java.lang.Object> headers
-
entity
private java.lang.Object entity
-
iterator
private final java.util.Iterator<javax.ws.rs.ext.WriterInterceptor> iterator
-
processedCount
private int processedCount
-
injectionManager
private final InjectionManager injectionManager
-
-
Constructor Detail
-
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, java.lang.Iterable<javax.ws.rs.ext.WriterInterceptor> writerInterceptors, InjectionManager injectionManager)Constructs a new executor to write given type to providedentityStream.- 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 byMethod.getParameterAnnotations.mediaType- media type of the HTTP entity.headers- mutable HTTP headers associated with HTTP entity.propertiesDelegate- request-scoped properties delegate.entityStream-InputStreamfrom 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.
-
-
Method Detail
-
getNextInterceptor
private javax.ws.rs.ext.WriterInterceptor getNextInterceptor()
Returns nextinterceptorin the chain. Stateful method.- Returns:
- Next interceptor.
-
proceed
public void proceed() throws java.io.IOExceptionStarts the interceptor chain execution.- Specified by:
proceedin interfacejavax.ws.rs.ext.WriterInterceptorContext- Throws:
java.io.IOException
-
getEntity
public java.lang.Object getEntity()
- Specified by:
getEntityin interfacejavax.ws.rs.ext.WriterInterceptorContext
-
setEntity
public void setEntity(java.lang.Object entity)
- Specified by:
setEntityin interfacejavax.ws.rs.ext.WriterInterceptorContext
-
getOutputStream
public java.io.OutputStream getOutputStream()
- Specified by:
getOutputStreamin interfacejavax.ws.rs.ext.WriterInterceptorContext
-
setOutputStream
public void setOutputStream(java.io.OutputStream os)
- Specified by:
setOutputStreamin interfacejavax.ws.rs.ext.WriterInterceptorContext
-
getHeaders
public javax.ws.rs.core.MultivaluedMap<java.lang.String,java.lang.Object> getHeaders()
- Specified by:
getHeadersin interfacejavax.ws.rs.ext.WriterInterceptorContext
-
getProcessedCount
int getProcessedCount()
Get number of processed interceptors.- Returns:
- number of processed interceptors.
-
getInjectionManager
public InjectionManager getInjectionManager()
Description copied from interface:InjectionManagerSupplierGet injection manager.- Specified by:
getInjectionManagerin interfaceInjectionManagerSupplier- Returns:
- injection manager.
-
-