Skip to content

Commit

Permalink
Fix warnings in o.e.team.tests.core related to FileModificationValidator
Browse files Browse the repository at this point in the history
The test implementations PessimisticRepositoryProvider,
RepositoryProviderBic, and RepositoryProviderNaish use deprecated
API for the FileModificationValidator. This change adapts to the new API
by changing from IFileModificationValidator to FileModificationValidator
and by extracting the validation within PessimisticRepositoryProvider
into a static inner class.
  • Loading branch information
HeikoKlare committed Dec 12, 2023
1 parent 040a399 commit 182c0f7
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 46 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
*******************************************************************************/
package org.eclipse.team.tests.core;

import org.eclipse.core.resources.IFileModificationValidator;
import org.eclipse.core.resources.team.FileModificationValidator;
import org.eclipse.core.resources.team.IMoveDeleteHook;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.team.core.RepositoryProvider;
Expand All @@ -23,7 +23,7 @@ public class RepositoryProviderBic extends RepositoryProvider {
final public static String NATURE_ID = "org.eclipse.team.tests.core.bic-provider";

private IMoveDeleteHook mdh;
private IFileModificationValidator mv;
private FileModificationValidator mv;

@Override
public void configureProject() throws CoreException {
Expand All @@ -38,7 +38,7 @@ public void deconfigure() throws CoreException {
}

@Override
public IFileModificationValidator getFileModificationValidator() {
public FileModificationValidator getFileModificationValidator2() {
return mv;
}

Expand All @@ -47,7 +47,7 @@ public IMoveDeleteHook getMoveDeleteHook() {
return mdh;
}

public void setModificationValidator(IFileModificationValidator mv) {
public void setModificationValidator(FileModificationValidator mv) {
this.mv = mv;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
*******************************************************************************/
package org.eclipse.team.tests.core;

import org.eclipse.core.resources.IFileModificationValidator;
import org.eclipse.core.resources.team.FileModificationValidator;
import org.eclipse.core.resources.team.IMoveDeleteHook;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.team.core.RepositoryProvider;
Expand All @@ -22,7 +22,8 @@ public class RepositoryProviderNaish extends RepositoryProvider {

final public static String NATURE_ID = "org.eclipse.team.tests.core.naish-provider";
private IMoveDeleteHook mdh;
private IFileModificationValidator mv;
private FileModificationValidator mv;

@Override
public void configureProject() throws CoreException {
}
Expand All @@ -35,15 +36,15 @@ public String getID() {
public void deconfigure() throws CoreException {
}

public void setModificationValidator(IFileModificationValidator mv) {
public void setModificationValidator(FileModificationValidator mv) {
this.mv = mv;
}

public void setMoveDeleteHook(IMoveDeleteHook mdh) {
this.mdh = mdh;
}
@Override
public IFileModificationValidator getFileModificationValidator() {
public FileModificationValidator getFileModificationValidator() {
return mv;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,27 +14,30 @@
package org.eclipse.team.tests.core.regression;

import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFileModificationValidator;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IWorkspaceRunnable;
import org.eclipse.core.resources.ResourceAttributes;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.*;
import org.eclipse.core.resources.team.FileModificationValidationContext;
import org.eclipse.core.resources.team.FileModificationValidator;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.team.core.RepositoryProvider;

/**
* Repository provider that can be configured to be pessimistic.
*/
public class PessimisticRepositoryProvider extends RepositoryProvider implements IFileModificationValidator {
private static PessimisticRepositoryProvider soleInstance;

public class PessimisticRepositoryProvider extends RepositoryProvider {
public static final String NATURE_ID = "org.eclipse.team.tests.core.regression.pessimistic-provider";

private FileModificationValidator validator;

public static boolean markWritableOnEdit;
public static boolean markWritableOnSave;

public PessimisticRepositoryProvider() {
soleInstance = this;
validator = new WritabilityEnforcingFileModificationValidator();
}

@Override
Expand All @@ -49,64 +52,59 @@ public String getID() {
@Override
public void deconfigure() {
}

@Override
public boolean canHandleLinkedResourceURI() {
return true;
}

@Override
public IFileModificationValidator getFileModificationValidator() {
return soleInstance;
public FileModificationValidator getFileModificationValidator2() {
return validator;
}

@Override
public IStatus validateEdit(final IFile[] files, Object context) {
if (markWritableOnEdit) {
try {
ResourcesPlugin.getWorkspace().run(
(IWorkspaceRunnable) monitor -> {
private static class WritabilityEnforcingFileModificationValidator extends FileModificationValidator {
@Override
public IStatus validateEdit(final IFile[] files, FileModificationValidationContext context) {
if (markWritableOnEdit) {
try {
ResourcesPlugin.getWorkspace().run((IWorkspaceRunnable) monitor -> {
for (int i = 0, length = files.length; i < length; i++) {
try {
setReadOnly(files[i], false);
} catch (CoreException e) {
e.printStackTrace();
}
}
},
null);
} catch (CoreException e) {
e.printStackTrace();
return e.getStatus();
}, null);
} catch (CoreException e) {
e.printStackTrace();
return e.getStatus();
}
}
return Status.OK_STATUS;
}
return Status.OK_STATUS;
}

@Override
public IStatus validateSave(IFile file) {
if (markWritableOnSave) {
try {
setReadOnly(file, false);
} catch (CoreException e) {
e.printStackTrace();
return e.getStatus();
@Override
public IStatus validateSave(IFile file) {
if (markWritableOnSave) {
try {
setReadOnly(file, false);
} catch (CoreException e) {
e.printStackTrace();
return e.getStatus();
}
}
return Status.OK_STATUS;
}
return Status.OK_STATUS;
}

public void setReadOnly(IResource resource, boolean readOnly) throws CoreException {
private static void setReadOnly(IResource resource, boolean readOnly) throws CoreException {
ResourceAttributes resourceAttributes = resource.getResourceAttributes();
if (resourceAttributes != null) {
resourceAttributes.setReadOnly(readOnly);
resource.setResourceAttributes(resourceAttributes);
}
}

public boolean isReadOnly(IResource resource) throws CoreException {
ResourceAttributes resourceAttributes = resource.getResourceAttributes();
if (resourceAttributes != null) {
return resourceAttributes.isReadOnly();
}
return false;
}
}

0 comments on commit 182c0f7

Please sign in to comment.