Class DecodeRepresentation


  • public class DecodeRepresentation
    extends WrapperRepresentation
    Representation that decodes a wrapped representation if its encoding is supported. If at least one encoding of the wrapped representation is not supported, then the wrapped representation is not decoded.
    • Field Detail

      • decoding

        private volatile boolean decoding
        Indicates if the decoding can happen.
      • wrappedEncodings

        private final java.util.List<Encoding> wrappedEncodings
        List of encodings still applied to the decodeRepresentation
    • Constructor Detail

      • DecodeRepresentation

        public DecodeRepresentation​(Representation wrappedRepresentation)
        Constructor.
        Parameters:
        wrappedRepresentation - The wrapped representation.
    • Method Detail

      • getSupportedEncodings

        public static java.util.List<Encoding> getSupportedEncodings()
        Returns the list of supported encodings.
        Returns:
        The list of supported encodings.
      • getChannel

        public java.nio.channels.ReadableByteChannel getChannel()
                                                         throws java.io.IOException
        Returns a readable byte channel. If it is supported by a file a read-only instance of FileChannel is returned.
        Overrides:
        getChannel in class WrapperRepresentation
        Returns:
        A readable byte channel.
        Throws:
        java.io.IOException
      • getDecodedStream

        private java.io.InputStream getDecodedStream​(Encoding encoding,
                                                     java.io.InputStream encodedStream)
                                              throws java.io.IOException
        Returns a decoded stream for a given encoding and coded stream.
        Parameters:
        encoding - The encoding to use.
        encodedStream - The encoded stream.
        Returns:
        The decoded stream.
        Throws:
        java.io.IOException
      • getEncodings

        public java.util.List<Encoding> getEncodings()
        Returns the encodings applied to the entity.
        Overrides:
        getEncodings in class WrapperRepresentation
        Returns:
        The encodings applied to the entity.
      • getReader

        public java.io.Reader getReader()
                                 throws java.io.IOException
        Description copied from class: Representation
        Returns a characters reader with the representation's content. This method is ensured to return a fresh reader for each invocation unless it is a transient representation, in which case null is returned. If the representation has no character set defined, the system's default one will be used.
        Overrides:
        getReader in class WrapperRepresentation
        Returns:
        A reader with the representation's content.
        Throws:
        java.io.IOException
      • getSize

        public long getSize()
        Returns the size in bytes of the decoded representation if known, UNKNOWN_SIZE (-1) otherwise.
        Overrides:
        getSize in class WrapperRepresentation
        Returns:
        The size in bytes if known, UNKNOWN_SIZE (-1) otherwise.
        See Also:
        Representation.isEmpty()
      • getStream

        public java.io.InputStream getStream()
                                      throws java.io.IOException
        Returns a stream with the representation's content.
        Overrides:
        getStream in class WrapperRepresentation
        Returns:
        A stream with the representation's content.
        Throws:
        java.io.IOException
      • getText

        public java.lang.String getText()
                                 throws java.io.IOException
        Converts the representation to a string value. Be careful when using this method as the conversion of large content to a string fully stored in memory can result in OutOfMemoryErrors being thrown.
        Overrides:
        getText in class WrapperRepresentation
        Returns:
        The representation as a string value.
        Throws:
        java.io.IOException
      • isDecoding

        public boolean isDecoding()
        Indicates if the decoding can happen.
        Returns:
        True if the decoding can happen.
      • write

        public void write​(java.io.OutputStream outputStream)
                   throws java.io.IOException
        Writes the representation to a byte stream.
        Overrides:
        write in class WrapperRepresentation
        Parameters:
        outputStream - The output stream.
        Throws:
        java.io.IOException
      • write

        public void write​(java.nio.channels.WritableByteChannel writableChannel)
                   throws java.io.IOException
        Writes the representation to a byte channel.
        Overrides:
        write in class WrapperRepresentation
        Parameters:
        writableChannel - A writable byte channel.
        Throws:
        java.io.IOException