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 bufferedIStreamContentAccessor
.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 ofgetContents
) and theBufferedContent
is not modified (withsetContent
) no buffering takes place. Buffering starts when either methodgetContent
orsetContent
is called.- See Also:
IContentChangeNotifier
,IStreamContentAccessor
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
BufferedContent()
Creates a buffered stream content accessor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addContentChangeListener(IContentChangeListener listener)
Adds a content change listener to this notifier.protected abstract InputStream
createStream()
Creates and returns a stream for reading the contents.void
discardBuffer()
Discards the buffered content.protected void
fireContentChanged()
Notifies all registeredIContentChangeListener
s of a content change.byte[]
getContent()
Returns the contents as an array of bytes.InputStream
getContents()
Returns an openInputStream
for this object which can be used to retrieve the object's content.void
removeContentChangeListener(IContentChangeListener listener)
Removes the given content changed listener from this notifier.void
setContent(byte[] contents)
Sets the contents.
-
-
-
Method Detail
-
getContents
public InputStream getContents() throws CoreException
Description copied from interface:IStreamContentAccessor
Returns an openInputStream
for this object which can be used to retrieve the object's content. The client is responsible for closing the stream when finished. Returnsnull
if this object has no streamable contents.- Specified by:
getContents
in interfaceIStreamContentAccessor
- 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 interfaceIContentChangeNotifier
- 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 interfaceIContentChangeNotifier
- Parameters:
listener
- a content changed listener
-
fireContentChanged
protected void fireContentChanged()
Notifies all registeredIContentChangeListener
s of a content change.
-
-