Class FileChangesCollection
- All Implemented Interfaces:
IFolderFileChangeListener
,IResourceDeltaVisitor
,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 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, IFolder[] folders, ProjectManager projectManager) Constructs the instance with the specified folders.Method Summary
Modifier and TypeMethodDescriptionIFolder[]
Gets the folders currently used.Gets the MultiStatus instance when visiting, in order to merge errors.protected boolean
isFileProcessed
(IFile file) Checks if file is processed.final boolean
isProcessed
(IResource resource) Checks if the resource is one of the folders.void
onFileAdded
(IFile file) File has been added.void
onFileChanged
(IFile file, int flags) File has been changed (markers, contents, etc).void
onFileMoved
(IFile newFile, IFile oldFile) File has been moved.void
onFileRemoved
(IFile file) File has been removed.void
onFolderAdded
(IFolder folder) Folder has been added.void
onFolderMoved
(IFolder newFolder, IFolder oldFolder) Folder has been moved.void
onFolderRemoved
(IFolder folder) Folder has been removed.void
onNewFolders
(IFolder[] folders) Called when new folders has been assigned, due to e.g.final void
process
(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
(MultiStatus multiStatus) Assigns a MultiStatus before visit.final void
setNewFolders
(IFolder[] folders) Assigns the folders to process.void
setProgressMonitor
(IProgressMonitor monitor) Assigns a progress monitor to cancel lengthy job.final boolean
Called to visit the a resource in one of the processed folders.final boolean
visit
(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
A 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
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
Assigns a progress monitor to cancel lengthy job.setNewFolders
Assigns the folders to process.onNewFolders
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
Gets the folders currently used.isProcessed
Checks if the resource is one of the folders.process
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:
CoreException
- For visiting errors.
setMultiStatus
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
Gets the MultiStatus instance when visiting, in order to merge errors.visit
Called to visit the a resource in one of the processed folders.- Specified by:
visit
in interfaceIResourceVisitor
- Throws:
CoreException
- For visiting errors.
visit
Called to visit the delta changes in one of the processed folders.- Specified by:
visit
in interfaceIResourceDeltaVisitor
- Throws:
CoreException
- For visiting errors.
isFileProcessed
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
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:
CoreException
- For failures.
onFileMoved
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:
CoreException
- For failures.
onFileChanged
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:
CoreException
- For failures.
onFileRemoved
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:
CoreException
- For failures.
onFolderAdded
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:
CoreException
- For failures.
onFolderMoved
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:
CoreException
- For failures.
onFolderRemoved
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:
CoreException
- For failures.