Class ResourceChangeValidator

java.lang.Object
org.eclipse.core.resources.mapping.ResourceChangeValidator

public final class ResourceChangeValidator extends Object
The resource change validator is used to validate that changes made to resources will not adversely affect the models stored in those resources.

The validator is used by first creating a resource delta describing the proposed changes. A delta can be generated using a IResourceChangeDescriptionFactory. The change is then validated by calling the validateChange(IResourceDelta, IProgressMonitor) method. This example validates a change to a single file: IFile file = ..;//some file that is going to be changed ResourceChangeValidator validator = ResourceChangeValidator.getValidator(); IResourceChangeDescriptionFactory factory = validator.createDeltaFactory(); factory.change(file); IResourceDelta delta = factory.getDelta(); IStatus result = validator.validateChange(delta, null); If the result status does not have severity IStatus.OK, then the changes may cause problems for models that are built on those resources. In this case the user should be presented with the status message to determine if they want to proceed with the modification.

Since:
3.2
  • Method Details

    • getValidator

      public static ResourceChangeValidator getValidator()
      Return the singleton change validator.
      Returns:
      the singleton change validator
    • createDeltaFactory

      public IResourceChangeDescriptionFactory createDeltaFactory()
      Return an empty change description factory that can be used to build a proposed resource delta.
      Returns:
      an empty change description factory that can be used to build a proposed resource delta
    • validateChange

      public IStatus validateChange(IResourceDelta delta, IProgressMonitor monitor)
      Validate the proposed changes contained in the given delta by consulting all model providers to determine if the changes have any adverse side effects.

      This method returns either a ModelStatus, or a MultiStatus whose children are ModelStatus. In either case, the severity of the status indicates the severity of the possible side-effects of the operation. Any severity other than OK should be shown to the user. The message should be a human readable message that will allow the user to make a decision on whether to continue with the operation. The model provider id should indicate which model is flagging the the possible side effects.

      Parameters:
      delta - a delta tree containing the proposed changes
      Returns:
      a status indicating any potential side effects on models stored in the affected resources.