Class FileChangesCollection
- java.lang.Object
- com.iizigo.project.FileChangesCollection
 
- All Implemented Interfaces:
- IFolderFileChangeListener,- org.eclipse.core.resources.IResourceDeltaVisitor,- org.eclipse.core.resources.IResourceVisitor
 - Direct Known Subclasses:
- JavaManager
 - public class FileChangesCollection extends java.lang.Object implements org.eclipse.core.resources.IResourceVisitor, org.eclipse.core.resources.IResourceDeltaVisitor, IFolderFileChangeListener Class used to process file changes to create a collection of added, removed or renamed/moved files from a list of folders upon a change in the file system.- The tables - addedOrChanged, renamedOrMovedand- removedare 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- Fields - Modifier and Type - Field - Description - java.lang.String- descriptionThe description of the visit.- protected org.eclipse.core.runtime.IProgressMonitor- monitorA progress monitor if not null.- protected ProjectManager- projectManagerThe current Project Manager, null for none, to inform file changes.
 - Constructor Summary- Constructors - Constructor - Description - FileChangesCollection(java.lang.String description, ProjectManager projectManager)Constructs the instance without specified folders.- FileChangesCollection(java.lang.String description, org.eclipse.core.resources.IFolder[] folders, ProjectManager projectManager)Constructs the instance with the specified folders.
 - Method Summary- All Methods Instance Methods Concrete Methods - Modifier and Type - Method - Description - org.eclipse.core.resources.IFolder[]- getFolders()Gets the folders currently used.- org.eclipse.core.runtime.MultiStatus- getMultiStatus()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.- 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.- void- process(org.eclipse.core.resources.IResourceDelta delta)Processes a delta, it is assumed a check for folder processing has been done using- isProcessed(folder)prior to calling this method.- void- setMultiStatus(org.eclipse.core.runtime.MultiStatus multiStatus)Assigns a MultiStatus before visit.- 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.- boolean- visit(org.eclipse.core.resources.IResource resource)Called to visit the a resource in one of the processed folders.- boolean- visit(org.eclipse.core.resources.IResourceDelta delta)Called to visit the delta changes in one of the processed folders.
 
- Field Detail- description- public final java.lang.String description The description of the visit.
 - projectManager- protected final ProjectManager projectManager The current Project Manager, null for none, to inform file changes.
 - monitor- protected org.eclipse.core.runtime.IProgressMonitor monitor A progress monitor if not null.
 
 - Constructor Detail- FileChangesCollection- public FileChangesCollection(java.lang.String description, ProjectManager projectManager)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(java.lang.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 Detail- 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 - supermethod.- 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.CoreExceptionProcesses a delta, it is assumed a check for folder processing has been done using- isProcessed(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.CoreExceptionCalled to visit the a resource in one of the processed folders.- Specified by:
- visitin interface- org.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.CoreExceptionCalled to visit the delta changes in one of the processed folders.- Specified by:
- visitin interface- org.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.CoreExceptionFile has been added.- Subclasses should override to process the event, no need to call the - supermethod.- Specified by:
- onFileAddedin interface- IFolderFileChangeListener
- 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.CoreExceptionFile has been moved.- Subclasses should override to process the event, no need to call the - supermethod.- Specified by:
- onFileMovedin interface- IFolderFileChangeListener
- 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.CoreExceptionFile has been changed (markers, contents, etc).- Subclasses should override to process the event, no need to call the - supermethod.- Specified by:
- onFileChangedin interface- IFolderFileChangeListener
- 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.CoreExceptionFile has been removed.- Subclasses should override to process the event, no need to call the - supermethod.- Specified by:
- onFileRemovedin interface- IFolderFileChangeListener
- 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.CoreExceptionFolder has been added.- Subclasses should override to process the event, no need to call the - supermethod.- Specified by:
- onFolderAddedin interface- IFolderFileChangeListener
- 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.CoreExceptionFolder has been moved.- Subclasses should override to process the event, no need to call the - supermethod.- Specified by:
- onFolderMovedin interface- IFolderFileChangeListener
- 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.CoreExceptionFolder has been removed.- Subclasses should override to process the event, no need to call the - supermethod.- Specified by:
- onFolderRemovedin interface- IFolderFileChangeListener
- Parameters:
- folder- The folder.
- Throws:
- org.eclipse.core.runtime.CoreException- For failures.