In progress: [ Issue 40 ] Add support for import resolution across multiple folders
https://code.google.com/p/protobuf-dt/issues/detail?id=40
URI resolution no longer changes the original URIs of Imports.
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtobufImportUriResolver.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtobufImportUriResolver.java
index 3be0863..ae81490 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtobufImportUriResolver.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtobufImportUriResolver.java
@@ -31,7 +31,7 @@
public class ProtobufImportUriResolver extends ImportUriResolver {
@Inject private IFileUriResolver delegate;
-
+
/**
* Prefix used by EMF for resource URIs: "platform:/resource/".
*/
@@ -44,13 +44,21 @@
* @return the {@code String} representation of the given object's {@code URI}.
*/
@Override public String apply(EObject from) {
- if (from instanceof Import) fixUri((Import) from);
+ if (from instanceof Import) {
+ Import anImport = (Import) from;
+ String originalUri = anImport.getImportURI();
+ resolveImportUri(anImport);
+ String applied = super.apply(from);
+ anImport.setImportURI(originalUri);
+ return applied;
+ }
+ if (from instanceof Import) resolveImportUri((Import) from);
return super.apply(from);
}
- private void fixUri(Import anImport) {
+ private void resolveImportUri(Import anImport) {
Resource resource = anImport.eResource();
- String fixed = delegate.resolveUri(anImport.getImportURI(), resource);
- anImport.setImportURI(fixed);
+ String resolved = delegate.resolveUri(anImport.getImportURI(), resource);
+ anImport.setImportURI(resolved);
}
}