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
FieldsModifier and TypeFieldDescriptionfinal StringThe description of the visit.protected IProgressMonitorA progress monitor if not null.protected final ProjectManagerThe current Project Manager, null for none, to inform file changes.Constructor Summary
ConstructorsConstructorDescriptionFileChangesCollection(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 booleanisFileProcessed(IFile file) Checks if file is processed.final booleanisProcessed(IResource resource) Checks if the resource is one of the folders.voidonFileAdded(IFile file) File has been added.voidonFileChanged(IFile file, int flags) File has been changed (markers, contents, etc).voidonFileMoved(IFile newFile, IFile oldFile) File has been moved.voidonFileRemoved(IFile file) File has been removed.voidonFolderAdded(IFolder folder) Folder has been added.voidonFolderMoved(IFolder newFolder, IFolder oldFolder) Folder has been moved.voidonFolderRemoved(IFolder folder) Folder has been removed.voidonNewFolders(IFolder[] folders) Called when new folders has been assigned, due to e.g.final voidprocess(IResourceDelta delta) Processes a delta, it is assumed a check for folder processing has been done usingisProcessed(folder)prior to calling this method.voidsetMultiStatus(MultiStatus multiStatus) Assigns a MultiStatus before visit.final voidsetNewFolders(IFolder[] folders) Assigns the folders to process.voidsetProgressMonitor(IProgressMonitor monitor) Assigns a progress monitor to cancel lengthy job.final booleanCalled to visit the a resource in one of the processed folders.final booleanvisit(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
supermethod.- 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:
visitin interfaceIResourceVisitor- Throws:
CoreException- For visiting errors.
visit
Called to visit the delta changes in one of the processed folders.- Specified by:
visitin 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
supermethod.- Specified by:
onFileAddedin 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
supermethod.- Specified by:
onFileMovedin 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
supermethod.- Specified by:
onFileChangedin 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
supermethod.- Specified by:
onFileRemovedin 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
supermethod.- Specified by:
onFolderAddedin 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
supermethod.- Specified by:
onFolderMovedin 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
supermethod.- Specified by:
onFolderRemovedin interfaceIFolderFileChangeListener- Parameters:
folder- The folder.- Throws:
CoreException- For failures.