public abstract class TeamHook
extends org.eclipse.core.internal.resources.InternalTeamHook
This class is intended to be subclassed by the team component in
conjunction with the org.eclipse.core.resources.teamHook
standard extension point. Individual team providers may also subclass this
class. It is not intended to be subclassed by other clients. The methods
defined on this class are called from within the implementations of
workspace API methods and must not be invoked directly by clients.
Modifier and Type | Field and Description |
---|---|
protected IResourceRuleFactory |
defaultFactory
The default resource scheduling rule factory.
|
Modifier | Constructor and Description |
---|---|
protected |
TeamHook()
Creates a new team hook.
|
Modifier and Type | Method and Description |
---|---|
IResourceRuleFactory |
getRuleFactory(IProject project)
Returns the resource scheduling rule factory that should be used when workspace
operations are invoked on resources in that project.
|
protected void |
setRuleFactory(IProject project,
IResourceRuleFactory factory)
Sets the resource scheduling rule factory to use for resource modifications
in the given project.
|
IStatus |
validateCreateLink(IFile file,
int updateFlags,
IPath location)
Validates whether a particular attempt at link creation is allowed.
|
IStatus |
validateCreateLink(IFile file,
int updateFlags,
URI location)
Validates whether a particular attempt at link creation is allowed.
|
IStatus |
validateCreateLink(IFolder folder,
int updateFlags,
IPath location)
Validates whether a particular attempt at link creation is allowed.
|
IStatus |
validateCreateLink(IFolder folder,
int updateFlags,
URI location)
Validates whether a particular attempt at link creation is allowed.
|
protected final IResourceRuleFactory defaultFactory
getRuleFactory(IProject)
,
setRuleFactory(IProject, IResourceRuleFactory)
protected TeamHook()
public IResourceRuleFactory getRuleFactory(IProject project)
setRuleFactory
.
This method must not return null
. If no special rules are required
by the team hook for the given project, the value of the defaultFactory
field should be returned.
This default implementation always returns the value of the defaultFactory
field. Subclasses may override and provide a subclass of ResourceRuleFactory
.
project
- the project to return scheduling rules forsetRuleFactory(IProject, IResourceRuleFactory)
,
ResourceRuleFactory
protected final void setRuleFactory(IProject project, IResourceRuleFactory factory)
getRuleFactory
for the given project
The supplied factory must not be null
. If no special rules are required
by the team hook for the given project, the value of the defaultFactory
field should be used.
Note that the new rule factory will only take effect for resource changing operations that begin after this method completes. Care should be taken to avoid calling this method during the invocation of any resource changing operation (in any thread). The best time to change rule factories is during resource change notification when the workspace is locked for modification.
setRuleFactory
in class org.eclipse.core.internal.resources.InternalTeamHook
project
- the project to change the resource rule factory forfactory
- the new resource rule factorygetRuleFactory(IProject)
,
IResourceRuleFactory
public IStatus validateCreateLink(IFile file, int updateFlags, IPath location)
IFile.createLink
.
The implementation of this method runs "below" the resources API and is therefore very restricted in what resource API method it can call. The list of useable methods includes most resource operations that read but do not update the resource tree; resource operations that modify resources and trigger deltas must not be called from within the dynamic scope of the invocation of this method.
This method should be overridden by subclasses that want to control what links are created. The default implementation of this method allows all links to be created.
file
- the file to be linkedupdateFlags
- bit-wise or of update flag constants
(only ALLOW_MISSING_LOCAL is relevant here)location
- a file system path where the file should be linkedIStatus.OK
if linking is allowed, otherwise a status object with severity
IStatus.ERROR
indicating why the creation is not allowed.IResource.ALLOW_MISSING_LOCAL
public IStatus validateCreateLink(IFile file, int updateFlags, URI location)
IFile.createLink(URI, int, IProgressMonitor)
The implementation of this method runs "below" the resources API and is therefore very restricted in what resource API method it can call. The list of useable methods includes most resource operations that read but do not update the resource tree; resource operations that modify resources and trigger deltas must not be called from within the dynamic scope of the invocation of this method.
This method should be overridden by subclasses that want to control what links are created. The default implementation of this method allows all links to be created.
file
- the file to be linkedupdateFlags
- bit-wise or of update flag constants
(only ALLOW_MISSING_LOCAL is relevant here)location
- a file system URI where the file should be linkedIStatus.OK
if linking is allowed, otherwise a status object with severity
IStatus.ERROR
indicating why the creation is not allowed.IResource.ALLOW_MISSING_LOCAL
public IStatus validateCreateLink(IFolder folder, int updateFlags, IPath location)
IFolder.createLink
.
The implementation of this method runs "below" the resources API and is therefore very restricted in what resource API method it can call. The list of useable methods includes most resource operations that read but do not update the resource tree; resource operations that modify resources and trigger deltas must not be called from within the dynamic scope of the invocation of this method.
This method should be overridden by subclasses that want to control what links are created. The default implementation of this method allows all links to be created.
folder
- the file to be linkedupdateFlags
- bit-wise or of update flag constants
(only ALLOW_MISSING_LOCAL is relevant here)location
- a file system path where the folder should be linkedIStatus.OK
if linking is allowed, otherwise a status object with severity
IStatus.ERROR
indicating why the creation is not allowed.IResource.ALLOW_MISSING_LOCAL
public IStatus validateCreateLink(IFolder folder, int updateFlags, URI location)
IFolder.createLink(URI, int, IProgressMonitor)
The implementation of this method runs "below" the resources API and is therefore very restricted in what resource API method it can call. The list of useable methods includes most resource operations that read but do not update the resource tree; resource operations that modify resources and trigger deltas must not be called from within the dynamic scope of the invocation of this method.
This method should be overridden by subclasses that want to control what links are created. The default implementation of this method allows all links to be created.
folder
- the file to be linkedupdateFlags
- bit-wise or of update flag constants
(only ALLOW_MISSING_LOCAL is relevant here)location
- a file system path where the folder should be linkedIStatus.OK
if linking is allowed, otherwise a status object with severity
IStatus.ERROR
indicating why the creation is not allowed.IResource.ALLOW_MISSING_LOCAL
Copyright (c) 2000, 2015 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.