Java源码示例:org.eclipse.xtext.ui.refactoring.IChangeRedirector
示例1
@Override
public IChangeRedirector getChangeRedirector() {
if(refactoringDocumentProvider instanceof IChangeRedirector.Aware)
return ((IChangeRedirector.Aware) refactoringDocumentProvider).getChangeRedirector();
else
return IChangeRedirector.NULL;
}
示例2
@Override
protected List<? extends IRenameElementContext> createRenameElementContexts(Object element) {
if(super.getNewName().endsWith(".xtend")) {
IFile file = (IFile) element;
final IPath filePath = file.getFullPath();
final IPath newPath = file.getFullPath().removeLastSegments(1).append(getNewName() + ".xtend");
String className = trimFileExtension(file.getName());
if(className != null) {
ResourceSet resourceSet = resourceSetProvider.get(file.getProject());
URI resourceURI = URI.createPlatformResourceURI(file.getFullPath().toString(), true);
Resource resource = resourceSet.getResource(resourceURI, true);
if (resource != null && !resource.getContents().isEmpty()) {
for (XtendTypeDeclaration type : EcoreUtil2.eAllOfType(resource.getContents().get(0), XtendTypeDeclaration.class)) {
if (equal(className, type.getName())) {
IRenameElementContext renameElementContext = renameContextFactory.createRenameElementContext(type, null, null,
(XtextResource) resource);
if(renameElementContext instanceof IChangeRedirector.Aware)
((IChangeRedirector.Aware) renameElementContext).setChangeRedirector(new IChangeRedirector() {
@Override
public IPath getRedirectedPath(IPath source) {
return source.equals(filePath) ? newPath : source;
}
});
return singletonList(renameElementContext);
}
}
}
}
}
return super.createRenameElementContexts(element);
}
示例3
protected IPath getPathToRename(URI elementURI, ResourceSet resourceSet) {
EObject targetObject = resourceSet.getEObject(elementURI, false);
if (targetObject instanceof XtendTypeDeclaration) {
URI resourceURI = EcoreUtil2.getPlatformResourceOrNormalizedURI(targetObject).trimFragment();
if (!resourceURI.isPlatformResource())
throw new RefactoringException("Renamed type does not reside in the workspace");
IPath path = new Path(resourceURI.toPlatformString(true));
if(context instanceof IChangeRedirector.Aware) {
if(((IChangeRedirector.Aware) context).getChangeRedirector().getRedirectedPath(path) != path)
return null;
}
return path;
}
return null;
}
示例4
@Override
public IChangeRedirector getChangeRedirector() {
return changeRedirector;
}
示例5
@Override
public void setChangeRedirector(IChangeRedirector changeRedirector) {
this.changeRedirector = changeRedirector;
}
示例6
protected void transferChangeRedirector(IRefactoringUpdateAcceptor currentUpdateAcceptor2) {
if(currentUpdateAcceptor instanceof IChangeRedirector.Aware && renameElementContext instanceof IChangeRedirector.Aware)
((IChangeRedirector.Aware) currentUpdateAcceptor).setChangeRedirector(
((IChangeRedirector.Aware)getRenameElementContext()).getChangeRedirector());
}
示例7
@Override
public IChangeRedirector getChangeRedirector() {
return changeRedirector;
}
示例8
@Override
public void setChangeRedirector(IChangeRedirector changeRedirector) {
this.changeRedirector = changeRedirector;
}
示例9
@Override
public void setChangeRedirector(IChangeRedirector changeRedirector) {
if(refactoringDocumentProvider instanceof IChangeRedirector.Aware)
((IChangeRedirector.Aware) refactoringDocumentProvider).setChangeRedirector(changeRedirector);
}