Package org.restlet.engine.application
Class DecodeRepresentation
- java.lang.Object
-
- org.restlet.representation.Variant
-
- org.restlet.representation.RepresentationInfo
-
- org.restlet.representation.Representation
-
- org.restlet.util.WrapperRepresentation
-
- org.restlet.engine.application.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 Summary
Fields Modifier and Type Field Description private booleandecodingIndicates if the decoding can happen.private java.util.List<Encoding>wrappedEncodingsList of encodings still applied to the decodeRepresentation-
Fields inherited from class org.restlet.representation.Representation
UNKNOWN_SIZE
-
-
Constructor Summary
Constructors Constructor Description DecodeRepresentation(Representation wrappedRepresentation)Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description longgetAvailableSize()Returns the size effectively available.java.nio.channels.ReadableByteChannelgetChannel()Returns a readable byte channel.private java.io.InputStreamgetDecodedStream(Encoding encoding, java.io.InputStream encodedStream)Returns a decoded stream for a given encoding and coded stream.java.util.List<Encoding>getEncodings()Returns the encodings applied to the entity.java.io.ReadergetReader()Returns a characters reader with the representation's content.longgetSize()Returns the size in bytes of the decoded representation if known, UNKNOWN_SIZE (-1) otherwise.java.io.InputStreamgetStream()Returns a stream with the representation's content.static java.util.List<Encoding>getSupportedEncodings()Returns the list of supported encodings.java.lang.StringgetText()Converts the representation to a string value.booleanisDecoding()Indicates if the decoding can happen.voidwrite(java.io.OutputStream outputStream)Writes the representation to a byte stream.voidwrite(java.nio.channels.WritableByteChannel writableChannel)Writes the representation to a byte channel.-
Methods inherited from class org.restlet.util.WrapperRepresentation
exhaust, getCharacterSet, getDigest, getDisposition, getExpirationDate, getLanguages, getLocationRef, getMediaType, getModificationDate, getRange, getRegistration, getTag, getWrappedRepresentation, isAvailable, isSelectable, isTransient, release, setAvailable, setCharacterSet, setDigest, setDisposition, setEncodings, setExpirationDate, setLanguages, setLocationRef, setLocationRef, setMediaType, setModificationDate, setRange, setSize, setTag, setTransient, write
-
Methods inherited from class org.restlet.representation.Representation
append, hasKnownSize, isEmpty, setListener
-
Methods inherited from class org.restlet.representation.Variant
createClientInfo, equals, hashCode, includes, isCompatible, toString
-
-
-
-
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.
-
getAvailableSize
public long getAvailableSize()
Description copied from class:RepresentationReturns the size effectively available. This returns the same value asRepresentation.getSize()if no range is defined, otherwise it returns the size of the range usingRange.getSize().- Overrides:
getAvailableSizein classWrapperRepresentation- Returns:
- The available size.
-
getChannel
public java.nio.channels.ReadableByteChannel getChannel() throws java.io.IOExceptionReturns a readable byte channel. If it is supported by a file a read-only instance of FileChannel is returned.- Overrides:
getChannelin classWrapperRepresentation- 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:
getEncodingsin classWrapperRepresentation- Returns:
- The encodings applied to the entity.
-
getReader
public java.io.Reader getReader() throws java.io.IOExceptionDescription copied from class:RepresentationReturns 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:
getReaderin classWrapperRepresentation- 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:
getSizein classWrapperRepresentation- Returns:
- The size in bytes if known, UNKNOWN_SIZE (-1) otherwise.
- See Also:
Representation.isEmpty()
-
getStream
public java.io.InputStream getStream() throws java.io.IOExceptionReturns a stream with the representation's content.- Overrides:
getStreamin classWrapperRepresentation- Returns:
- A stream with the representation's content.
- Throws:
java.io.IOException
-
getText
public java.lang.String getText() throws java.io.IOExceptionConverts 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:
getTextin classWrapperRepresentation- 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.IOExceptionWrites the representation to a byte stream.- Overrides:
writein classWrapperRepresentation- Parameters:
outputStream- The output stream.- Throws:
java.io.IOException
-
write
public void write(java.nio.channels.WritableByteChannel writableChannel) throws java.io.IOExceptionWrites the representation to a byte channel.- Overrides:
writein classWrapperRepresentation- Parameters:
writableChannel- A writable byte channel.- Throws:
java.io.IOException
-
-