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 a message body writer execution interceptor is inserted, which writes entity to the output stream provided by the chain.
  • Field Details

    • LOGGER

      private static final Logger LOGGER
    • outputStream

      private OutputStream outputStream
    • headers

      private final javax.ws.rs.core.MultivaluedMap<String,Object> headers
    • entity

      private Object entity
    • iterator

      private final Iterator<javax.ws.rs.ext.WriterInterceptor> iterator
    • processedCount

      private int processedCount
    • injectionManager

      private final InjectionManager injectionManager
  • Constructor Details

    • WriterInterceptorExecutor

      public WriterInterceptorExecutor(Object entity, Class<?> rawType, Type type, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType, javax.ws.rs.core.MultivaluedMap<String,Object> headers, PropertiesDelegate propertiesDelegate, OutputStream entityStream, MessageBodyWorkers workers, Iterable<javax.ws.rs.ext.WriterInterceptor> writerInterceptors, InjectionManager injectionManager)
      Constructs a new executor to write given type to provided entityStream.
      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.
      writerInterceptors - Writer interceptors that are to be used to intercept writing of an entity.
      injectionManager - injection manager.
  • Method Details

    • getNextInterceptor

      private javax.ws.rs.ext.WriterInterceptor getNextInterceptor()
      Returns next interceptor in the chain. Stateful method.
      Returns:
      Next interceptor.
    • proceed

      public void proceed() throws IOException
      Starts the interceptor chain execution.
      Specified by:
      proceed in interface javax.ws.rs.ext.WriterInterceptorContext
      Throws:
      IOException
    • getEntity

      public Object getEntity()
      Specified by:
      getEntity in interface javax.ws.rs.ext.WriterInterceptorContext
    • setEntity

      public void setEntity(Object entity)
      Specified by:
      setEntity in interface javax.ws.rs.ext.WriterInterceptorContext
    • getOutputStream

      public OutputStream getOutputStream()
      Specified by:
      getOutputStream in interface javax.ws.rs.ext.WriterInterceptorContext
    • setOutputStream

      public void setOutputStream(OutputStream os)
      Specified by:
      setOutputStream in interface javax.ws.rs.ext.WriterInterceptorContext
    • getHeaders

      public javax.ws.rs.core.MultivaluedMap<String,Object> getHeaders()
      Specified by:
      getHeaders in interface javax.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: InjectionManagerSupplier
      Get injection manager.
      Specified by:
      getInjectionManager in interface InjectionManagerSupplier
      Returns:
      injection manager.