Class ReaderInterceptorExecutor
- java.lang.Object
-
- org.glassfish.jersey.message.internal.InterceptorExecutor<javax.ws.rs.ext.ReaderInterceptor>
-
- org.glassfish.jersey.message.internal.ReaderInterceptorExecutor
-
- All Implemented Interfaces:
javax.ws.rs.ext.InterceptorContext,javax.ws.rs.ext.ReaderInterceptorContext,InjectionManagerSupplier,PropertiesDelegate
public final class ReaderInterceptorExecutor extends InterceptorExecutor<javax.ws.rs.ext.ReaderInterceptor> implements javax.ws.rs.ext.ReaderInterceptorContext, InjectionManagerSupplier
Represents reader 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 readerexecution interceptor is inserted, which finally reads an entity from the output stream provided by the chain.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private classReaderInterceptorExecutor.TerminalReaderInterceptorTerminal reader interceptor which choose the appropriateMessageBodyReaderand reads the entity from the input stream.private static classReaderInterceptorExecutor.UnCloseableInputStreamMessageBodyReaders should not close the givenstream.
-
Field Summary
Fields Modifier and Type Field Description private javax.ws.rs.core.MultivaluedMap<java.lang.String,java.lang.String>headersprivate InjectionManagerinjectionManagerprivate java.io.InputStreaminputStreamprivate java.util.Iterator<javax.ws.rs.ext.ReaderInterceptor>interceptorsprivate static java.util.logging.LoggerLOGGERprivate intprocessedCountprivate booleantranslateNceprivate MessageBodyWorkersworkers
-
Constructor Summary
Constructors Constructor Description ReaderInterceptorExecutor(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.String> headers, PropertiesDelegate propertiesDelegate, java.io.InputStream inputStream, MessageBodyWorkers workers, java.lang.Iterable<javax.ws.rs.ext.ReaderInterceptor> readerInterceptors, boolean translateNce, InjectionManager injectionManager)Constructs a new executor to read given type from providedentityStream.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static java.io.InputStreamcloseableInputStream(java.io.InputStream inputStream)Make theInputStreamable to close.javax.ws.rs.core.MultivaluedMap<java.lang.String,java.lang.String>getHeaders()InjectionManagergetInjectionManager()Get injection manager.java.io.InputStreamgetInputStream()(package private) intgetProcessedCount()Get number of processed interceptors.java.lang.Objectproceed()Starts the interceptor chain execution.voidsetInputStream(java.io.InputStream is)-
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
-
headers
private final javax.ws.rs.core.MultivaluedMap<java.lang.String,java.lang.String> headers
-
interceptors
private final java.util.Iterator<javax.ws.rs.ext.ReaderInterceptor> interceptors
-
workers
private final MessageBodyWorkers workers
-
translateNce
private final boolean translateNce
-
injectionManager
private final InjectionManager injectionManager
-
inputStream
private java.io.InputStream inputStream
-
processedCount
private int processedCount
-
-
Constructor Detail
-
ReaderInterceptorExecutor
ReaderInterceptorExecutor(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.String> headers, PropertiesDelegate propertiesDelegate, java.io.InputStream inputStream, MessageBodyWorkers workers, java.lang.Iterable<javax.ws.rs.ext.ReaderInterceptor> readerInterceptors, boolean translateNce, InjectionManager injectionManager)Constructs a new executor to read given type from providedentityStream.- Parameters:
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 message headers.propertiesDelegate- request-scoped properties delegate.inputStream- entity input stream.workers-Message body workers.readerInterceptors- Reader interceptor that are to be used to intercept the reading of an entity. The interceptors will be executed in the same order as given in this parameter.translateNce- iftrue, theNoContentExceptionthrown by a selected message body reader will be translated into aBadRequestExceptionas required byinjectionManager- injection manager.
-
-
Method Detail
-
proceed
public java.lang.Object proceed() throws java.io.IOExceptionStarts the interceptor chain execution.- Specified by:
proceedin interfacejavax.ws.rs.ext.ReaderInterceptorContext- Returns:
- an entity read from the stream.
- Throws:
java.io.IOException
-
getInputStream
public java.io.InputStream getInputStream()
- Specified by:
getInputStreamin interfacejavax.ws.rs.ext.ReaderInterceptorContext
-
setInputStream
public void setInputStream(java.io.InputStream is)
- Specified by:
setInputStreamin interfacejavax.ws.rs.ext.ReaderInterceptorContext
-
getHeaders
public javax.ws.rs.core.MultivaluedMap<java.lang.String,java.lang.String> getHeaders()
- Specified by:
getHeadersin interfacejavax.ws.rs.ext.ReaderInterceptorContext
-
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.
-
closeableInputStream
public static java.io.InputStream closeableInputStream(java.io.InputStream inputStream)
Make theInputStreamable to close. The purpose of this utility method is to undo effect ofReaderInterceptorExecutor.UnCloseableInputStream.- Parameters:
inputStream- PotentialReaderInterceptorExecutor.UnCloseableInputStreamto undo its effect- Returns:
- Input stream that is possible to close
-
-