Class WritableRepresentation


  • public abstract class WritableRepresentation
    extends ChannelRepresentation
    Representation based on a writable NIO byte channel. This class is a good basis to write your own representations, especially for the dynamic and large ones.

    For this you just need to create a subclass and override the abstract Representation.write(WritableByteChannel) method. This method will later be called back by the connectors when the actual representation's content is needed.
    Author:
    Jerome Louvel
    • Constructor Detail

      • WritableRepresentation

        public WritableRepresentation​(MediaType mediaType)
        Constructor.
        Parameters:
        mediaType - The representation's media type.
    • Method Detail

      • getChannel

        public java.nio.channels.ReadableByteChannel getChannel()
                                                         throws java.io.IOException
        Description copied from class: Representation
        Returns a channel with the representation's content.
        If it is supported by a file, a read-only instance of FileChannel is returned.
        This method is ensured to return a fresh channel for each invocation unless it is a transient representation, in which case null is returned.
        Specified by:
        getChannel in class Representation
        Returns:
        A channel with the representation's content.
        Throws:
        java.io.IOException
      • write

        public abstract void write​(java.nio.channels.WritableByteChannel writableChannel)
                            throws java.io.IOException
        Description copied from class: Representation
        Writes the representation to a byte channel. This method is ensured to write the full content for each invocation unless it is a transient representation, in which case an exception is thrown.
        Specified by:
        write in class Representation
        Parameters:
        writableChannel - A writable byte channel.
        Throws:
        java.io.IOException