Class FileChangesCollection
- All Implemented Interfaces:
IFolderFileChangeListener
,org.eclipse.core.resources.IResourceDeltaVisitor
,org.eclipse.core.resources.IResourceVisitor
- Direct Known Subclasses:
JavaManager
The tables addedOrChanged, renamedOrMoved
and removed
are public, but care should be taken to only work on the snap-shot copy and not the "live" one, otherwise unpredictable results may occur.
- Author:
- Christopher Mindus
Field Summary
Modifier and TypeFieldDescriptionfinal String
The description of the visit.protected org.eclipse.core.runtime.IProgressMonitor
A progress monitor if not null.protected final ProjectManager
The current Project Manager, null for none, to inform file changes.Constructor Summary
ConstructorDescriptionFileChangesCollection
(String description, ProjectManager projectManager) Constructs the instance without specified folders.FileChangesCollection
(String description, org.eclipse.core.resources.IFolder[] folders, ProjectManager projectManager) Constructs the instance with the specified folders.Method Summary
Modifier and TypeMethodDescriptionorg.eclipse.core.resources.IFolder[]
Gets the folders currently used.org.eclipse.core.runtime.MultiStatus
Gets the MultiStatus instance when visiting, in order to merge errors.protected boolean
isFileProcessed
(org.eclipse.core.resources.IFile file) Checks if file is processed.final boolean
isProcessed
(org.eclipse.core.resources.IResource resource) Checks if the resource is one of the folders.void
onFileAdded
(org.eclipse.core.resources.IFile file) File has been added.void
onFileChanged
(org.eclipse.core.resources.IFile file, int flags) File has been changed (markers, contents, etc).void
onFileMoved
(org.eclipse.core.resources.IFile newFile, org.eclipse.core.resources.IFile oldFile) File has been moved.void
onFileRemoved
(org.eclipse.core.resources.IFile file) File has been removed.void
onFolderAdded
(org.eclipse.core.resources.IFolder folder) Folder has been added.void
onFolderMoved
(org.eclipse.core.resources.IFolder newFolder, org.eclipse.core.resources.IFolder oldFolder) Folder has been moved.void
onFolderRemoved
(org.eclipse.core.resources.IFolder folder) Folder has been removed.void
onNewFolders
(org.eclipse.core.resources.IFolder[] folders) Called when new folders has been assigned, due to e.g.final void
process
(org.eclipse.core.resources.IResourceDelta delta) Processes a delta, it is assumed a check for folder processing has been done usingisProcessed(folder)
prior to calling this method.void
setMultiStatus
(org.eclipse.core.runtime.MultiStatus multiStatus) Assigns a MultiStatus before visit.final void
setNewFolders
(org.eclipse.core.resources.IFolder[] folders) Assigns the folders to process.void
setProgressMonitor
(org.eclipse.core.runtime.IProgressMonitor monitor) Assigns a progress monitor to cancel lengthy job.final boolean
visit
(org.eclipse.core.resources.IResource resource) Called to visit the a resource in one of the processed folders.final boolean
visit
(org.eclipse.core.resources.IResourceDelta delta) Called to visit the delta changes in one of the processed folders.
Field Details
description
The description of the visit.projectManager
The current Project Manager, null for none, to inform file changes.monitor
protected org.eclipse.core.runtime.IProgressMonitor monitorA progress monitor if not null.
Constructor Details
FileChangesCollection
Constructs the instance without specified folders.- Parameters:
description
- Description of the visit, if it fails.projectManager
- Instance of Project Manager to inform of changes, null not to inform...
FileChangesCollection
public FileChangesCollection(String description, org.eclipse.core.resources.IFolder[] folders, ProjectManager projectManager) Constructs the instance with the specified folders.- Parameters:
description
- Description of the visit, if it fails.folders
- The folders to process.projectManager
- Instance of Project Manager to inform of changes, null not to inform...
Method Details
setProgressMonitor
public void setProgressMonitor(org.eclipse.core.runtime.IProgressMonitor monitor) Assigns a progress monitor to cancel lengthy job.setNewFolders
public final void setNewFolders(org.eclipse.core.resources.IFolder[] folders) Assigns the folders to process.onNewFolders
public void onNewFolders(org.eclipse.core.resources.IFolder[] folders) Called when new folders has been assigned, due to e.g. Java project settings changed to add/remove a source folder.Subclasses should override to process the event, no need to call the
super
method.- Parameters:
folders
- The new folders.
getFolders
public org.eclipse.core.resources.IFolder[] getFolders()Gets the folders currently used.isProcessed
public final boolean isProcessed(org.eclipse.core.resources.IResource resource) Checks if the resource is one of the folders.process
public final void process(org.eclipse.core.resources.IResourceDelta delta) throws org.eclipse.core.runtime.CoreException Processes a delta, it is assumed a check for folder processing has been done usingisProcessed(folder)
prior to calling this method.- Parameters:
delta
- The delta for resources.- Throws:
org.eclipse.core.runtime.CoreException
- For visiting errors.
setMultiStatus
public void setMultiStatus(org.eclipse.core.runtime.MultiStatus multiStatus) Assigns a MultiStatus before visit. This helps catching the exception into this multiple status that is thrown upon return.- Parameters:
multiStatus
- The multi-status or null not to use it.
getMultiStatus
public org.eclipse.core.runtime.MultiStatus getMultiStatus()Gets the MultiStatus instance when visiting, in order to merge errors.visit
public final boolean visit(org.eclipse.core.resources.IResource resource) throws org.eclipse.core.runtime.CoreException Called to visit the a resource in one of the processed folders.- Specified by:
visit
in interfaceorg.eclipse.core.resources.IResourceVisitor
- Throws:
org.eclipse.core.runtime.CoreException
- For visiting errors.
visit
public final boolean visit(org.eclipse.core.resources.IResourceDelta delta) throws org.eclipse.core.runtime.CoreException Called to visit the delta changes in one of the processed folders.- Specified by:
visit
in interfaceorg.eclipse.core.resources.IResourceDeltaVisitor
- Throws:
org.eclipse.core.runtime.CoreException
- For visiting errors.
isFileProcessed
protected boolean isFileProcessed(org.eclipse.core.resources.IFile file) Checks if file is processed.Subclasses must check if this resource is to be processed and return true if it's a valid file (typically the file extension).
- Parameters:
file
- The file.- Returns:
- true if file is to be processed, false otherwise.
onFileAdded
public void onFileAdded(org.eclipse.core.resources.IFile file) throws org.eclipse.core.runtime.CoreException File has been added.Subclasses should override to process the event, no need to call the
super
method.- Specified by:
onFileAdded
in interfaceIFolderFileChangeListener
- Parameters:
file
- The file.- Throws:
org.eclipse.core.runtime.CoreException
- For failures.
onFileMoved
public void onFileMoved(org.eclipse.core.resources.IFile newFile, org.eclipse.core.resources.IFile oldFile) throws org.eclipse.core.runtime.CoreException File has been moved.Subclasses should override to process the event, no need to call the
super
method.- Specified by:
onFileMoved
in interfaceIFolderFileChangeListener
- Parameters:
newFile
- The new file.oldFile
- The old file.- Throws:
org.eclipse.core.runtime.CoreException
- For failures.
onFileChanged
public void onFileChanged(org.eclipse.core.resources.IFile file, int flags) throws org.eclipse.core.runtime.CoreException File has been changed (markers, contents, etc).Subclasses should override to process the event, no need to call the
super
method.- Specified by:
onFileChanged
in interfaceIFolderFileChangeListener
- Parameters:
file
- The file.flags
- How the file was changed, from IResourceDelta, where the important ones are CONTENT, MARKERS, ENCODING, LOCAL_CHANGE, DERIVED_CHANGED, REPLACED.- Throws:
org.eclipse.core.runtime.CoreException
- For failures.
onFileRemoved
public void onFileRemoved(org.eclipse.core.resources.IFile file) throws org.eclipse.core.runtime.CoreException File has been removed.Subclasses should override to process the event, no need to call the
super
method.- Specified by:
onFileRemoved
in interfaceIFolderFileChangeListener
- Parameters:
file
- The file.- Throws:
org.eclipse.core.runtime.CoreException
- For failures.
onFolderAdded
public void onFolderAdded(org.eclipse.core.resources.IFolder folder) throws org.eclipse.core.runtime.CoreException Folder has been added.Subclasses should override to process the event, no need to call the
super
method.- Specified by:
onFolderAdded
in interfaceIFolderFileChangeListener
- Parameters:
folder
- The folder.- Throws:
org.eclipse.core.runtime.CoreException
- For failures.
onFolderMoved
public void onFolderMoved(org.eclipse.core.resources.IFolder newFolder, org.eclipse.core.resources.IFolder oldFolder) throws org.eclipse.core.runtime.CoreException Folder has been moved.Subclasses should override to process the event, no need to call the
super
method.- Specified by:
onFolderMoved
in interfaceIFolderFileChangeListener
- Parameters:
newFolder
- The new folder.oldFolder
- The old folder.- Throws:
org.eclipse.core.runtime.CoreException
- For failures.
onFolderRemoved
public void onFolderRemoved(org.eclipse.core.resources.IFolder folder) throws org.eclipse.core.runtime.CoreException Folder has been removed.Subclasses should override to process the event, no need to call the
super
method.- Specified by:
onFolderRemoved
in interfaceIFolderFileChangeListener
- Parameters:
folder
- The folder.- Throws:
org.eclipse.core.runtime.CoreException
- For failures.