Class BufferedContent

  • All Implemented Interfaces:
    IContentChangeNotifier, IStreamContentAccessor
    Direct Known Subclasses:
    ResourceNode

    public abstract class BufferedContent
    extends java.lang.Object
    implements IContentChangeNotifier, IStreamContentAccessor
    Abstract implementation for a buffered IStreamContentAccessor.

    Subclasses must implement the createStream method to connect the buffered content with a streamable source (e.g., a file).

    As long as the contents of BufferedContent is only retrieved as an input stream (by means of getContents) and the BufferedContent is not modified (with setContent) no buffering takes place. Buffering starts when either method getContent or setContent is called.

    See Also:
    IContentChangeNotifier, IStreamContentAccessor
    • Constructor Detail

      • BufferedContent

        protected BufferedContent()
        Creates a buffered stream content accessor.
    • Method Detail

      • getContents

        public java.io.InputStream getContents()
                                        throws CoreException
        Description copied from interface: IStreamContentAccessor
        Returns an open InputStream for this object which can be used to retrieve the object's content. The client is responsible for closing the stream when finished. Returns null if this object has no streamable contents.
        Specified by:
        getContents in interface IStreamContentAccessor
        Returns:
        an input stream containing the contents of this object
        Throws:
        CoreException - if the contents of this object could not be accessed
      • createStream

        protected abstract java.io.InputStream createStream()
                                                     throws CoreException
        Creates and returns a stream for reading the contents.

        Subclasses must implement this method.

        Returns:
        the stream from which the content is read
        Throws:
        CoreException - if the contents could not be accessed
      • setContent

        public void setContent​(byte[] contents)
        Sets the contents. Registered content change listeners are notified.
        Parameters:
        contents - the new contents
      • getContent

        public byte[] getContent()
        Returns the contents as an array of bytes.
        Returns:
        the contents as an array of bytes, or null if the contents could not be accessed
      • discardBuffer

        public void discardBuffer()
        Discards the buffered content.
      • fireContentChanged

        protected void fireContentChanged()
        Notifies all registered IContentChangeListeners of a content change.