Howto: Register Refactoring Support
From Eclipsepedia
Contents |
< To: Tigerstripe_APIs
Introduction
URI of an annotated objects may be changed during object lifetime. To solve this problem Annotation Framework supports annotated object refactoring. From the Annotation Framework side - refactoring is an operation which change one URI to another. To inform framework about URI changes org.eclipse.tigerstripe.annotation.core.IRefactoringSupport interface with following methods provided:
- deleted(URI uri) - notify framework about object with specified URI has been deleted;
- changed(URI newUri, URI oldUri) - notify framework about object's URI change;
IRefactoringSupport instance can be retrieved from Annotation Manager as following:
AnnotationPlugin.getManager().getRefactoringSupport();
Examples
org.eclipse.tigerstripe.annotation.java.ui.refactoring plugin support refactoring for JavaElements and Workspace resources. Below is excerpt from plugin code demonstrating calls into TAF notifying URI changes and object deletions.
protected void changed(Map<URI, URI> uris) {
for (URI uri : uris.keySet())
//inform annotation framework about changes
AnnotationPlugin.getManager().getRefactoringSupport().changed(uri, uris.get(uri));
}
...
public void deleted(ILazyObject object) {
IResource resource = getResource(object);
if (resource != null) {
URI uri = ResourceURIConverter.toURI(resource);
if (uri != null)
//inform annotation framework about resource deletion
AnnotationPlugin.getManager().getRefactoringSupport().deleted(uri);
}
}