org.eclipse.core.resources
Interface IResourceRuleFactory
-
All Known Implementing Classes:
-
ResourceRuleFactory
-
public interface IResourceRuleFactory
A resource rule factory returns scheduling rules for API methods
that modify the workspace. These rules can be used when creating jobs
or other operations that perform a series of modifications on the workspace.
This allows clients to implement two phase commit semantics, where all
necessary rules are obtained prior to executing a long running operation.
Note that simple use of the workspace APIs does not require use of scheduling
rules. All workspace API methods that modify the workspace will automatically
obtain any scheduling rules needed to perform the modification. However, if you
are aggregating a set of changes to the workspace using WorkspaceJob
or IWorkspaceRunnable
you can use scheduling rules to lock a
portion of the workspace for the duration of the job or runnable. If you
provide a non-null scheduling rule, a runtime exception will occur if you try to
modify a portion of the workspace that is not covered by the rule for the runnable or job.
If more than one rule is needed, they can be aggregated using the
MultiRule.combine
method. Simplifying a group of rules does not change
the set of resources that are covered, but can improve job scheduling performance.
Note that null
is a valid scheduling rule (indicating that no
resources need to be locked), and thus all methods in this class may
return null
.
-
Since:
- 3.0
-
See Also:
-
WorkspaceJob
,
IWorkspace.run(IWorkspaceRunnable, ISchedulingRule, int, org.eclipse.core.runtime.IProgressMonitor)
,
MultiRule.combine(ISchedulingRule, ISchedulingRule)
-
Restriction:
- This interface is not intended to be implemented by clients.
-
Restriction:
- This interface is not intended to be extended by clients.
createRule
ISchedulingRule createRule(
IResource resource)
- Returns the scheduling rule that is required for creating a project, folder,
or file.
-
-
Parameters:
-
resource
- the resource being created
-
Returns:
- a scheduling rule, or
null
buildRule
ISchedulingRule buildRule()
- Returns the scheduling rule that is required for building a project or the
entire workspace.
-
-
Returns:
- a scheduling rule, or
null
charsetRule
ISchedulingRule charsetRule(
IResource resource)
- Returns the scheduling rule that is required for changing the charset
setting for a file or the default charset setting for a container.
-
-
Parameters:
-
resource
- the resource the charset will be changed
-
Returns:
- a scheduling rule, or
null
-
Since:
- 3.1
copyRule
ISchedulingRule copyRule(
IResource source,
IResource destination)
- Returns the scheduling rule that is required for copying a resource.
-
-
Parameters:
-
source
- the source of the copy -
destination
- the destination of the copy
-
Returns:
- a scheduling rule, or
null
deleteRule
ISchedulingRule deleteRule(
IResource resource)
- Returns the scheduling rule that is required for deleting a resource.
-
-
Parameters:
-
resource
- the resource to be deleted
-
Returns:
- a scheduling rule, or
null
markerRule
ISchedulingRule markerRule(
IResource resource)
- Returns the scheduling rule that is required for creating, modifying, or
deleting markers on a resource.
-
-
Parameters:
-
resource
- the resource owning the marker to be modified
-
Returns:
- a scheduling rule, or
null
modifyRule
ISchedulingRule modifyRule(
IResource resource)
- Returns the scheduling rule that is required for modifying a resource.
For files, modification includes setting and appending contents. For
projects, modification includes opening or closing the project, or
setting the project description using the
IResource.AVOID_NATURE_CONFIG
flag. For all resources
touch
is considered to be a modification.
-
-
Parameters:
-
resource
- the resource being modified
-
Returns:
- a scheduling rule, or
null
moveRule
ISchedulingRule moveRule(
IResource source,
IResource destination)
- Returns the scheduling rule that is required for moving a resource.
-
-
Parameters:
-
source
- the source of the move -
destination
- the destination of the move
-
Returns:
- a scheduling rule, or
null
refreshRule
ISchedulingRule refreshRule(
IResource resource)
- Returns the scheduling rule that is required for performing
refreshLocal
on a resource.
-
-
Parameters:
-
resource
- the resource to refresh
-
Returns:
- a scheduling rule, or
null
validateEditRule
ISchedulingRule validateEditRule(
IResource[] resources)
- Returns the scheduling rule that is required for a
validateEdit
-
-
Parameters:
-
resources
- the resources to be validated
-
Returns:
- a scheduling rule, or
null
Guidelines for using Eclipse APIs.
Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.