Eclipse Platform
Release 3.3

org.eclipse.core.filebuffers
Interface IFileBufferManager

All Known Subinterfaces:
ITextFileBufferManager

public interface IFileBufferManager

A file buffer manager manages file buffers for files while the files are connected to the file buffer manager. In order to connect a file to a file buffer manager call connect. After that call has successfully completed the file buffer can be obtained by getFileBuffer. The file buffer is created on the first connect and disposed on the last disconnect. I.e. the file buffer manager keeps track of how often a file is connected and returns the same file buffer to each client as long as the file is connected.

Clients are not supposed to implement that interface.

Since:
3.0

Method Summary
 void addFileBufferListener(IFileBufferListener listener)
          Adds the given listener to the list of file buffer listeners.
 void connect(IPath location, IProgressMonitor monitor)
          Deprecated. As of 3.3, replaced by connect(IPath, LocationKind, IProgressMonitor)
 void connect(IPath location, LocationKind locationKind, IProgressMonitor monitor)
          Connects the file at the given location to this manager.
 void connectFileStore(IFileStore fileStore, IProgressMonitor monitor)
          Connects the given file store to this manager.
 void disconnect(IPath location, IProgressMonitor monitor)
          Deprecated. As of 3.3, replaced by disconnect(IPath, LocationKind, IProgressMonitor)
 void disconnect(IPath location, LocationKind locationKind, IProgressMonitor monitor)
          Disconnects the file at the given location from this manager.
 void disconnectFileStore(IFileStore fileStore, IProgressMonitor monitor)
          Disconnects the given file store from this manager.
 IFileBuffer getFileBuffer(IPath location)
          Deprecated. As of 3.3, replaced by getFileBuffer(IPath, LocationKind)
 IFileBuffer getFileBuffer(IPath location, LocationKind locationKind)
          Returns the file buffer managed for the given location or null if there is no such file buffer.
 IFileBuffer getFileStoreFileBuffer(IFileStore fileStore)
          Returns the file buffer managed for the given file store or null if there is no such file buffer.
 void releaseSynchronizationContext(IPath location)
          Deprecated. As of 3.1, replaced by IFileBuffer.releaseSynchronizationContext()
 void removeFileBufferListener(IFileBufferListener listener)
          Removes the given listener from the list of file buffer listeners.
 void requestSynchronizationContext(IPath location)
          Deprecated. As of 3.1, replaced by IFileBuffer.requestSynchronizationContext()
 void setSynchronizationContext(ISynchronizationContext context)
          Sets the synchronization context for this file buffer manager, i.e., for all file buffers this manager manages.
 void validateState(IFileBuffer[] fileBuffers, IProgressMonitor monitor, Object computationContext)
          Validates the state of the given file buffers and tries to bring the buffer's underlying file into a state in which it can be modified.
 

Method Detail

connect

public void connect(IPath location,
                    IProgressMonitor monitor)
             throws CoreException
Deprecated. As of 3.3, replaced by connect(IPath, LocationKind, IProgressMonitor)

Connects the file at the given location to this manager. After that call successfully completed it is guaranteed that each call to getFileBuffer returns the same file buffer until disconnect is called.

The provided location is either a full path of a workspace resource or an absolute path in the local file system. The file buffer manager does not resolve the location of workspace resources in the case of linked resources.

Parameters:
location - the location of the file to be connected
monitor - the progress monitor
Throws:
CoreException - if the file could not successfully be connected

connect

public void connect(IPath location,
                    LocationKind locationKind,
                    IProgressMonitor monitor)
             throws CoreException
Connects the file at the given location to this manager. After that call successfully completed it is guaranteed that each call to getFileBuffer returns the same file buffer until disconnect is called.

The type of the provided location is specified by the given locationKind.

Parameters:
location - the location of the file to be connected
locationKind - the kind of the given location
monitor - the progress monitor
Throws:
CoreException - if the file could not successfully be connected
Since:
3.3
See Also:
LocationKind

connectFileStore

public void connectFileStore(IFileStore fileStore,
                             IProgressMonitor monitor)
                      throws CoreException
Connects the given file store to this manager. After that call successfully completed it is guaranteed that each call to getFileBuffer returns the same file buffer until disconnect is called.

Note: This API must not be used if the given file store maps to a resource contained in the workspace. A file buffer that has been connected using a path will not be found.

We had to use a different name than connect for this method due to https://bugs.eclipse.org/bugs/show_bug.cgi?id=148844

Parameters:
fileStore - the file store to be connected
monitor - the progress monitor
Throws:
CoreException - if the file could not successfully be connected
Since:
3.3

disconnect

public void disconnect(IPath location,
                       IProgressMonitor monitor)
                throws CoreException
Deprecated. As of 3.3, replaced by disconnect(IPath, LocationKind, IProgressMonitor)

Disconnects the file at the given location from this manager. After that call successfully completed there is no guarantee that getFileBuffer will return a valid file buffer.

The provided location is either a full path of a workspace resource or an absolute path in the local file system. The file buffer manager does not resolve the location of workspace resources in the case of linked resources.

Parameters:
location - the location of the file to be disconnected
monitor - the progress monitor
Throws:
CoreException - if the file could not successfully be disconnected

disconnect

public void disconnect(IPath location,
                       LocationKind locationKind,
                       IProgressMonitor monitor)
                throws CoreException
Disconnects the file at the given location from this manager. After that call successfully completed there is no guarantee that getFileBuffer will return a valid file buffer.

The type of the provided location is specified by the given locationKind.

Parameters:
location - the location of the file to be disconnected
locationKind - the kind of the given location
monitor - the progress monitor
Throws:
CoreException - if the file could not successfully be disconnected
Since:
3.3
See Also:
LocationKind

disconnectFileStore

public void disconnectFileStore(IFileStore fileStore,
                                IProgressMonitor monitor)
                         throws CoreException
Disconnects the given file store from this manager. After that call successfully completed there is no guarantee that getFileBuffer will return a valid file buffer.

Note: This API must not be used if the given file store maps to a resource contained in the workspace. A file buffer that has been connected using a path will not be found.

We had to use a different name than disconnect for this method due to https://bugs.eclipse.org/bugs/show_bug.cgi?id=148844

Parameters:
fileStore - the file store to be disconnected
monitor - the progress monitor
Throws:
CoreException - if the file could not successfully be disconnected
Since:
3.3

getFileBuffer

public IFileBuffer getFileBuffer(IPath location)
Deprecated. As of 3.3, replaced by getFileBuffer(IPath, LocationKind)

Returns the file buffer managed for the given location or null if there is no such file buffer.

The provided location is either a full path of a workspace resource or an absolute path in the local file system. The file buffer manager does not resolve the location of workspace resources in the case of linked resources.

Parameters:
location - the location
Returns:
the file buffer managed for that location or null

getFileBuffer

public IFileBuffer getFileBuffer(IPath location,
                                 LocationKind locationKind)
Returns the file buffer managed for the given location or null if there is no such file buffer.

The type of the provided location is specified by the given locationKind.

Parameters:
location - the location
locationKind - the kind of the given location
Returns:
the file buffer managed for that location or null
Since:
3.3
See Also:
LocationKind

getFileStoreFileBuffer

public IFileBuffer getFileStoreFileBuffer(IFileStore fileStore)
Returns the file buffer managed for the given file store or null if there is no such file buffer.

Note: This API must not be used if the given file store maps to a resource contained in the workspace. A file buffer that has been connected using a path will not be found.

We had to use a different name than getFileBuffer for this method due to https://bugs.eclipse.org/bugs/show_bug.cgi?id=148844

Parameters:
fileStore - the file store
Returns:
the file buffer managed for that file store or null
Since:
3.3

setSynchronizationContext

public void setSynchronizationContext(ISynchronizationContext context)
Sets the synchronization context for this file buffer manager, i.e., for all file buffers this manager manages.

Parameters:
context - the synchronization context managed by this file buffer manager

requestSynchronizationContext

public void requestSynchronizationContext(IPath location)
Deprecated. As of 3.1, replaced by IFileBuffer.requestSynchronizationContext()

The caller requests that the synchronization context is used to synchronize the given location with its file buffer. This call as no effect if there is no file buffer managed for the given location.

The provided location is either a full path of a workspace resource or an absolute path in the local file system. The file buffer manager does not resolve the location of workspace resources in the case of linked resources.

Parameters:
location - the location

releaseSynchronizationContext

public void releaseSynchronizationContext(IPath location)
Deprecated. As of 3.1, replaced by IFileBuffer.releaseSynchronizationContext()

The caller no longer requests the synchronization context for the file buffer managed for the given location. This method has no effect if there is no file buffer managed for this location.

The provided location is either a full path of a workspace resource or an absolute path in the local file system. The file buffer manager does not resolve the location of workspace resources in the case of linked resources.

Parameters:
location - the location

addFileBufferListener

public void addFileBufferListener(IFileBufferListener listener)
Adds the given listener to the list of file buffer listeners. After that call the listener is informed about changes related to this file buffer manager. If the listener is already registered with the file buffer, this call has no effect.

Parameters:
listener - the listener to be added

removeFileBufferListener

public void removeFileBufferListener(IFileBufferListener listener)
Removes the given listener from the list of file buffer listeners. If the listener is not registered with this file buffer, this call has no effect.

Parameters:
listener - the listener to be removed

validateState

public void validateState(IFileBuffer[] fileBuffers,
                          IProgressMonitor monitor,
                          Object computationContext)
                   throws CoreException
Validates the state of the given file buffers and tries to bring the buffer's underlying file into a state in which it can be modified. File buffers which do not support state validation are left untouched.

In case of a single file buffer, IFileBuffer.validateState(IProgressMonitor, Object) should be used.

Parameters:
fileBuffers - the file buffers to validate
monitor - the progress monitor
computationContext - the context in which the validation is performed, e.g., a SWT shell
Throws:
CoreException - if the underlying file can not be accessed to it's state cannot be changed
Since:
3.1

Eclipse Platform
Release 3.3

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2007. All rights reserved.