Interface ContentReader

  • All Superinterfaces:
    ContentAccessor
    All Known Subinterfaces:
    FileContentReader

    @AlfrescoPublicApi
    public interface ContentReader
    extends ContentAccessor
    Represents a handle to read specific content. Content may only be accessed once per instance.

    Implementations of this interface might be Serializable but client code could should check suitability before attempting to serialize it.

    Implementations that are able to provide inter-VM streaming, such as accessing WebDAV, would be Serializable. An accessor that has to access a local file on the server could not provide inter-VM streaming unless it specifically makes remote calls and opens sockets, etc.

    Author:
    Derek Hulley
    See Also:
    ContentWriter
    • Method Detail

      • exists

        boolean exists()
        Check if the underlying content is present.
        Returns:
        Returns true if there is content at the URL refered to by this reader
      • getLastModified

        long getLastModified()
        Gets the time of the last modification of the underlying content.
        Returns:
        Returns the last modification time using the standard long time, or 0L if the content doesn't exist.
        See Also:
        System.currentTimeMillis()
      • isClosed

        boolean isClosed()
        Convenience method to find out if this reader has been closed. Once closed, the content can no longer be read. This method could be used to wait for a particular read operation to complete, for example.
        Returns:
        Return true if the content input stream has been used and closed otherwise false.
      • getReadableChannel

        ReadableByteChannel getReadableChannel()
                                        throws ContentIOException
        Provides low-level access to the underlying content.

        Once the stream is provided to a client it should remain active (subject to any timeouts) until closed by the client.

        Returns:
        Returns a stream that can be read at will, but must be closed when completed
        Throws:
        ContentIOException
      • getContent

        void getContent​(OutputStream os)
                 throws ContentIOException
        Gets content from the repository.

        All resources will be closed automatically.

        Care must be taken that the bytes read from the stream are properly decoded according to the encoding property.

        Parameters:
        os - the stream to which to write the content
        Throws:
        ContentIOException
        See Also:
        getReadableChannel()