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);
}