Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.team.core/src/org/eclipse/team/core/internal/FileModificationValidator.java')
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/internal/FileModificationValidator.java43
1 files changed, 24 insertions, 19 deletions
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/internal/FileModificationValidator.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/internal/FileModificationValidator.java
index 61fee8f09..ebd30963c 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/internal/FileModificationValidator.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/internal/FileModificationValidator.java
@@ -10,13 +10,13 @@ import org.eclipse.core.resources.IFileModificationValidator;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.MultiStatus;
import org.eclipse.core.runtime.Status;
-import org.eclipse.team.core.ITeamManager;
-import org.eclipse.team.core.ITeamProvider;
+import org.eclipse.team.core.RepositoryProvider;
+import org.eclipse.team.core.RepositoryProviderType;
import org.eclipse.team.core.TeamPlugin;
public class FileModificationValidator implements IFileModificationValidator {
- private static final Status OK = new Status(Status.OK, TeamPlugin.ID, Status.OK, Policy.bind("FileModificationValidator.ok"), null);
- private static final Status READ_ONLY = new Status(Status.ERROR, TeamPlugin.ID, Status.ERROR, Policy.bind("FileModificationValidator.isReadOnly"), null);
+ private static final Status OK = new Status(Status.OK, TeamPlugin.ID, Status.OK, Policy.bind("FileModificationValidator.ok"), null); //$NON-NLS-1$
+ private static final Status READ_ONLY = new Status(Status.ERROR, TeamPlugin.ID, Status.ERROR, Policy.bind("FileModificationValidator.isReadOnly"), null); //$NON-NLS-1$
/*
* @see IFileModificationValidator#validateEdit(IFile[], Object)
@@ -26,34 +26,39 @@ public class FileModificationValidator implements IFileModificationValidator {
IStatus[] result = new IStatus[files.length];
// Optimization so we don't create a new IFile[] each time
IFile[] fileArray = new IFile[1];
- ITeamManager manager = TeamPlugin.getManager();
for (int i = 0; i < files.length; i++) {
IFile file = files[i];
- ITeamProvider provider = manager.getProvider(file.getProject());
- if (provider == null) {
- result[i] =
- (file.isReadOnly())
- ? READ_ONLY
- : OK;
- } else {
- fileArray[0] = file;
- result[i] = provider.validateEdit(fileArray, context);
+ RepositoryProvider provider = RepositoryProviderType.getProvider(file.getProject());
+ IFileModificationValidator validator = null;
+ if (provider != null) {
+ validator = provider.getFileModificationValidator();
+ if(validator!=null) {
+ fileArray[0] = file;
+ result[i] = validator.validateEdit(fileArray, context);
+ }
+ }
+
+ if(validator==null) {
+ result[i] = (file.isReadOnly()) ? READ_ONLY : OK;
}
}
if (result.length == 1) {
return result[0];
}
- return new MultiStatus(TeamPlugin.ID, 0, result, Policy.bind("FileModificationValidator.validateEdit"), null);
+ return new MultiStatus(TeamPlugin.ID, 0, result, Policy.bind("FileModificationValidator.validateEdit"), null); //$NON-NLS-1$
}
/*
* @see IFileModificationValidator#validateSave(IFile)
*/
public IStatus validateSave(IFile file) {
- ITeamProvider provider = TeamPlugin.getManager().getProvider(file.getProject());
- if (provider == null) {
- return OK;
+ RepositoryProvider provider = RepositoryProviderType.getProvider(file.getProject());
+ if (provider != null) {
+ IFileModificationValidator validator = provider.getFileModificationValidator();
+ if(validator!=null) {
+ return validator.validateSave(file);
+ }
}
- return provider.validateSave(file);
+ return OK;
}
}

Back to the top