Package org.eclipse.compare
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 Summary
ConstructorsModifierConstructorDescriptionprotectedCreates a buffered stream content accessor. -
Method Summary
Modifier and TypeMethodDescriptionvoidAdds a content change listener to this notifier.protected abstract InputStreamCreates and returns a stream for reading the contents.voidDiscards the buffered content.protected voidNotifies all registeredIContentChangeListeners of a content change.byte[]Returns the contents as an array of bytes.Returns an openInputStreamfor this object which can be used to retrieve the object's content.voidRemoves the given content changed listener from this notifier.voidsetContent(byte[] contents) Sets the contents.
-
Constructor Details
-
BufferedContent
protected BufferedContent()Creates a buffered stream content accessor.
-
-
Method Details
-
getContents
Description copied from interface:IStreamContentAccessorReturns an openInputStreamfor this object which can be used to retrieve the object's content. The client is responsible for closing the stream when finished. Returnsnullif this object has no streamable contents.- Specified by:
getContentsin interfaceIStreamContentAccessor- Returns:
- an input stream containing the contents of this object
- Throws:
CoreException- if the contents of this object could not be accessed
-
createStream
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
nullif the contents could not be accessed
-
discardBuffer
public void discardBuffer()Discards the buffered content. -
addContentChangeListener
Description copied from interface:IContentChangeNotifierAdds a content change listener to this notifier. Has no effect if an identical listener is already registered.- Specified by:
addContentChangeListenerin interfaceIContentChangeNotifier- Parameters:
listener- a content changed listener
-
removeContentChangeListener
Description copied from interface:IContentChangeNotifierRemoves the given content changed listener from this notifier. Has no effect if the listener is not registered.- Specified by:
removeContentChangeListenerin interfaceIContentChangeNotifier- Parameters:
listener- a content changed listener
-
fireContentChanged
protected void fireContentChanged()Notifies all registeredIContentChangeListeners of a content change.
-