Class BufferedContent

java.lang.Object
org.eclipse.compare.BufferedContent
All Implemented Interfaces:
IContentChangeNotifier, IStreamContentAccessor
Direct Known Subclasses:
ResourceNode

public abstract class BufferedContent extends 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:
  • Constructor Details

    • BufferedContent

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

    • getContents

      public 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 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.
    • addContentChangeListener

      public void addContentChangeListener(IContentChangeListener listener)
      Description copied from interface: IContentChangeNotifier
      Adds a content change listener to this notifier. Has no effect if an identical listener is already registered.
      Specified by:
      addContentChangeListener in interface IContentChangeNotifier
      Parameters:
      listener - a content changed listener
    • removeContentChangeListener

      public void removeContentChangeListener(IContentChangeListener listener)
      Description copied from interface: IContentChangeNotifier
      Removes the given content changed listener from this notifier. Has no effect if the listener is not registered.
      Specified by:
      removeContentChangeListener in interface IContentChangeNotifier
      Parameters:
      listener - a content changed listener
    • fireContentChanged

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