Package org.glassfish.jersey.spi
Class ContentEncoder
java.lang.Object
org.glassfish.jersey.spi.ContentEncoder
- All Implemented Interfaces:
ReaderInterceptor
,WriterInterceptor
- Direct Known Subclasses:
DeflateEncoder
,GZipEncoder
@Priority(4000)
@Contract
public abstract class ContentEncoder
extends Object
implements ReaderInterceptor, WriterInterceptor
Standard contract for plugging in content encoding support. Provides a standard way of implementing encoding
WriterInterceptor
and decoding ReaderInterceptor
. Implementing this class ensures the encoding
supported by the implementation will be considered during the content negotiation phase when deciding which encoding
should be used based on the accepted encodings (and the associated quality parameters) in the request headers.- Author:
- Martin Matula
-
Constructor Summary
ModifierConstructorDescriptionprotected
ContentEncoder
(String... supportedEncodings) Initializes this encoder implementation with the list of supported content encodings. -
Method Summary
Modifier and TypeMethodDescriptionfinal Object
aroundReadFrom
(ReaderInterceptorContext context) final void
aroundWriteTo
(WriterInterceptorContext context) abstract InputStream
decode
(String contentEncoding, InputStream encodedStream) Implementations of this method should take the encoded stream, wrap it and return a stream that can be used to read the decoded entity.abstract OutputStream
encode
(String contentEncoding, OutputStream entityStream) Implementations of this method should take the entity stream, wrap it and return a stream that is encoded using the specified encoding.Returns values of Content-Encoding header supported by this encoder.
-
Constructor Details
-
ContentEncoder
Initializes this encoder implementation with the list of supported content encodings.- Parameters:
supportedEncodings
- Values of Content-Encoding header supported by this encoding provider.
-
-
Method Details
-
getSupportedEncodings
Returns values of Content-Encoding header supported by this encoder.- Returns:
- Set of supported Content-Encoding values.
-
decode
public abstract InputStream decode(String contentEncoding, InputStream encodedStream) throws IOException Implementations of this method should take the encoded stream, wrap it and return a stream that can be used to read the decoded entity.- Parameters:
contentEncoding
- Encoding to be used to decode the stream - guaranteed to be one of the supported encoding values.encodedStream
- Encoded input stream.- Returns:
- Decoded entity stream.
- Throws:
IOException
- if an IO error arises.
-
encode
public abstract OutputStream encode(String contentEncoding, OutputStream entityStream) throws IOException Implementations of this method should take the entity stream, wrap it and return a stream that is encoded using the specified encoding.- Parameters:
contentEncoding
- Encoding to be used to encode the entity - guaranteed to be one of the supported encoding values.entityStream
- Entity stream to be encoded.- Returns:
- Encoded stream.
- Throws:
IOException
- if an IO error arises.
-
aroundReadFrom
public final Object aroundReadFrom(ReaderInterceptorContext context) throws IOException, WebApplicationException - Specified by:
aroundReadFrom
in interfaceReaderInterceptor
- Throws:
IOException
WebApplicationException
-
aroundWriteTo
public final void aroundWriteTo(WriterInterceptorContext context) throws IOException, WebApplicationException - Specified by:
aroundWriteTo
in interfaceWriterInterceptor
- Throws:
IOException
WebApplicationException
-