Package org.eclipse.team.core.mapping
Class ChangeTracker
- java.lang.Object
-
- org.eclipse.team.core.mapping.ChangeTracker
-
public abstract class ChangeTracker extends Object
Supports the tracking of related changes for the purpose of grouping then using anIChangeGroupingRequestor
.Clients may subclass this class.
- Since:
- 3.3
- See Also:
IChangeGroupingRequestor
-
-
Constructor Summary
Constructors Constructor Description ChangeTracker()
Create a change tracker
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
dispose()
Remove any listeners for this tracker.protected void
ensureGrouped(IProject project, String name, IFile[] files)
Group the given modified file into a change set with the given name.protected abstract void
handleChanges(IProject project, IResource[] resources)
The given resources of interest have changed in the given project.protected abstract void
handleProjectChange(IProject project)
Resources of interest in the given project have changed but the specific changes are not known.protected boolean
isChangeOfInterest(IResourceDelta delta)
Return whether the given delta represents a change of interest.protected boolean
isModified(IFile file)
Return whether the given file is modified with respect to the repository provider associated with the file's project.protected boolean
isProjectOfInterest(IProject project)
Return whether the given project is of interest to this tracker.protected boolean
isProjectTracked(IProject project)
Return whether the given project is being tracked.protected abstract boolean
isResourceOfInterest(IResource resource)
Return whether the given resource is of interest to the tracker.protected void
projectTracked(IProject project)
Callback made fromtrackProject(IProject)
when a project is tracked.void
start()
Start tracking changes.protected void
stopTrackingProject(IProject project)
Stop tracking changes for the given project.protected boolean
trackProject(IProject project)
Track the given project if it has a change set collector.
-
-
-
Method Detail
-
start
public void start()
Start tracking changes. This registers listeners with the workspace and team.
-
dispose
public void dispose()
Remove any listeners for this tracker. Subclasses may extend this method but must call this method if they do.
-
isChangeOfInterest
protected boolean isChangeOfInterest(IResourceDelta delta)
Return whether the given delta represents a change of interest.- Parameters:
delta
- the delta- Returns:
- whether the given delta represents a change of interest
-
stopTrackingProject
protected void stopTrackingProject(IProject project)
Stop tracking changes for the given project. Subclasses may extend but must call this method.- Parameters:
project
- the project
-
isProjectTracked
protected final boolean isProjectTracked(IProject project)
Return whether the given project is being tracked.- Parameters:
project
- the project- Returns:
- whether the given project is being tracked
-
isProjectOfInterest
protected boolean isProjectOfInterest(IProject project)
Return whether the given project is of interest to this tracker. By default,true
is returned if the project is accessible. Subclasses may extend but should still check for project accessibility either by callingIResource.isAccessible()
or by invoking the overridden method.- Parameters:
project
- the project- Returns:
- whether the given project is of interest to this tracker
-
isResourceOfInterest
protected abstract boolean isResourceOfInterest(IResource resource)
Return whether the given resource is of interest to the tracker.- Parameters:
resource
- the resource- Returns:
- whether the given resource is of interest to the tracker
-
handleChanges
protected abstract void handleChanges(IProject project, IResource[] resources)
The given resources of interest have changed in the given project.- Parameters:
project
- the projectresources
- the resources
-
handleProjectChange
protected abstract void handleProjectChange(IProject project)
Resources of interest in the given project have changed but the specific changes are not known. Implementors must search the project for changes of interest.- Parameters:
project
- the project
-
trackProject
protected final boolean trackProject(IProject project)
Track the given project if it has a change set collector. If the project does not have a collector, the project is not tracked.- Parameters:
project
- the project- Returns:
- whether the project is being tracked
-
projectTracked
protected void projectTracked(IProject project)
Callback made fromtrackProject(IProject)
when a project is tracked. By default,handleProjectChange(IProject)
is called by subclasses may override.- Parameters:
project
- the project
-
ensureGrouped
protected void ensureGrouped(IProject project, String name, IFile[] files) throws CoreException
Group the given modified file into a change set with the given name.- Parameters:
project
- the projectname
- the unique name used to identify the change setfiles
- the change files to be grouped- Throws:
CoreException
- if an error occurs
-
isModified
protected boolean isModified(IFile file) throws CoreException
Return whether the given file is modified with respect to the repository provider associated with the file's project.- Parameters:
file
- the file- Returns:
- whether the given file is modified
- Throws:
CoreException
- if an error occurs while trying to determine the modification state of the file
-
-