Class Encoder

  • All Implemented Interfaces:
    Uniform

    public class Encoder
    extends Filter
    Filter compressing entities. The best encoding is automatically selected based on the preferences of the client and on the encoding supported by NRE: GZip, Zip and Deflate.
    If the Representation has an unknown size, it will always be a candidate for encoding. Candidate representations need to respect media type criteria by the lists of accepted and ignored media types. Concurrency note: instances of this class or its subclasses can be invoked by several threads at the same time and therefore must be thread-safe. You should be especially careful when storing state in member variables.
    • Field Detail

      • encodingRequest

        private final boolean encodingRequest
        Indicates if the request entity should be encoded.
      • encodingResponse

        private final boolean encodingResponse
        Indicates if the response entity should be encoded.
      • encoderService

        private final EncoderService encoderService
        The parent encoder service.
    • Constructor Detail

      • Encoder

        public Encoder​(Context context,
                       boolean encodingRequest,
                       boolean encodingResponse,
                       EncoderService encoderService)
        Constructor.
        Parameters:
        context - The context.
        encodingRequest - Indicates if the request entities should be encoded.
        encodingResponse - Indicates if the response entities should be encoded.
        encoderService - The parent encoder service.
    • Method Detail

      • afterHandle

        public void afterHandle​(Request request,
                                Response response)
        Allows filtering after its handling by the target Restlet. Does nothing by default.
        Overrides:
        afterHandle in class Filter
        Parameters:
        request - The request to filter.
        response - The response to filter.
      • beforeHandle

        public int beforeHandle​(Request request,
                                Response response)
        Allows filtering before its handling by the target Restlet. Does nothing by default.
        Overrides:
        beforeHandle in class Filter
        Parameters:
        request - The request to filter.
        response - The response to filter.
        Returns:
        The continuation status.
      • encode

        public Representation encode​(ClientInfo client,
                                     Representation representation)
        Encodes a given representation if an encoding is supported by the client.
        Parameters:
        client - The client preferences to use.
        representation - The representation to encode.
        Returns:
        The encoded representation or the original one if no encoding supported by the client.
      • getBestEncoding

        public Encoding getBestEncoding​(ClientInfo client)
        Returns the best supported encoding for a given client.
        Parameters:
        client - The client preferences to use.
        Returns:
        The best supported encoding for the given call.
      • getEncoderService

        public EncoderService getEncoderService()
        Returns the parent encoder service.
        Returns:
        The parent encoder service.
      • isEncodingRequest

        public boolean isEncodingRequest()
        Indicates if the request entity should be encoded.
        Returns:
        True if the request entity should be encoded.
      • isEncodingResponse

        public boolean isEncodingResponse()
        Indicates if the response entity should be encoded.
        Returns:
        True if the response entity should be encoded.