Code cleanup.
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/AstWalker.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/AstWalker.java
index 0fb78fd..2dc7e34 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/AstWalker.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/AstWalker.java
@@ -60,7 +60,7 @@
private Collection<IEObjectDescription> local(EObject start, ScopeFinder scopeFinder, Object criteria, int level) {
Set<IEObjectDescription> descriptions = new HashSet<IEObjectDescription>();
for (EObject element : start.eContents()) {
- descriptions.addAll(scopeFinder.descriptions(element, criteria, level));
+ descriptions.addAll(scopeFinder.local(element, criteria, level));
if (element instanceof Message) {
descriptions.addAll(local(element, scopeFinder, criteria, level + 1));
}
@@ -75,12 +75,12 @@
return imported(allImports, modelFinder.packageOf(start), resourceSet, scopeFinder, criteria);
}
- private Collection<IEObjectDescription> imported(List<Import> allImports, Package aPackage,
+ private Collection<IEObjectDescription> imported(List<Import> allImports, Package fromImporter,
ResourceSet resourceSet, ScopeFinder scopeFinder, Object criteria) {
Set<IEObjectDescription> descriptions = new HashSet<IEObjectDescription>();
for (Import anImport : allImports) {
if (imports.isImportingDescriptor(anImport)) {
- descriptions.addAll(scopeFinder.fromProtoDescriptor(anImport, criteria));
+ descriptions.addAll(scopeFinder.inDescriptor(anImport, criteria));
continue;
}
Resource imported = resources.importedResource(anImport, resourceSet);
@@ -88,12 +88,12 @@
if (rootOfImported instanceof NonProto2) continue;
if (rootOfImported != null) {
descriptions.addAll(publicImported(rootOfImported, scopeFinder, criteria));
- if (arePackagesRelated(aPackage, rootOfImported)) {
+ if (arePackagesRelated(fromImporter, rootOfImported)) {
descriptions.addAll(local(rootOfImported, scopeFinder, criteria));
continue;
}
+ descriptions.addAll(imported(fromImporter, imported, scopeFinder, criteria));
}
- descriptions.addAll(local(imported, scopeFinder, criteria));
}
return descriptions;
}
@@ -111,12 +111,13 @@
return packages.areRelated(aPackage, p);
}
- private Collection<IEObjectDescription> local(Resource resource, ScopeFinder scopeFinder, Object criteria) {
+ private Collection<IEObjectDescription> imported(Package fromImporter, Resource resource,
+ ScopeFinder scopeFinder, Object criteria) {
Set<IEObjectDescription> descriptions = new HashSet<IEObjectDescription>();
TreeIterator<Object> contents = getAllContents(resource, true);
while (contents.hasNext()) {
Object next = contents.next();
- descriptions.addAll(scopeFinder.descriptions(next, criteria));
+ descriptions.addAll(scopeFinder.imported(fromImporter, next, criteria));
// TODO verify that call to 'importedNamesProvider.namesOf' is not necessary
}
return descriptions;
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/CustomOptionScopeFinder.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/CustomOptionScopeFinder.java
index 53d3947..33d7416 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/CustomOptionScopeFinder.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/CustomOptionScopeFinder.java
@@ -14,6 +14,7 @@
import com.google.eclipse.protobuf.model.util.ModelFinder;
import com.google.eclipse.protobuf.naming.LocalNamesProvider;
import com.google.eclipse.protobuf.protobuf.*;
+import com.google.eclipse.protobuf.protobuf.Package;
import com.google.inject.Inject;
import org.eclipse.xtext.naming.QualifiedName;
@@ -30,11 +31,7 @@
@Inject private ModelFinder modelFinder;
@Inject private QualifiedNameDescriptions qualifiedNamesDescriptions;
- @Override public Collection<IEObjectDescription> fromProtoDescriptor(Import anImport, Object criteria) {
- return emptySet();
- }
-
- @Override public Collection<IEObjectDescription> descriptions(Object target, Object criteria) {
+ @Override public Collection<IEObjectDescription> imported(Package fromImporter, Object target, Object criteria) {
OptionType optionType = optionTypeFrom(criteria);
if (!isExtendingOptionMessage(target, optionType)) return emptySet();
Set<IEObjectDescription> descriptions = new HashSet<IEObjectDescription>();
@@ -45,7 +42,11 @@
return descriptions;
}
- @Override public Collection<IEObjectDescription> descriptions(Object target, Object criteria, int level) {
+ @Override public Collection<IEObjectDescription> inDescriptor(Import anImport, Object criteria) {
+ return emptySet();
+ }
+
+ @Override public Collection<IEObjectDescription> local(Object target, Object criteria, int level) {
OptionType optionType = optionTypeFrom(criteria);
if (!isExtendingOptionMessage(target, optionType)) return emptySet();
Set<IEObjectDescription> descriptions = new HashSet<IEObjectDescription>();
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ScopeFinder.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ScopeFinder.java
index f6223f5..7b8fa64 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ScopeFinder.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ScopeFinder.java
@@ -9,6 +9,7 @@
package com.google.eclipse.protobuf.scoping;
import com.google.eclipse.protobuf.protobuf.Import;
+import com.google.eclipse.protobuf.protobuf.Package;
import org.eclipse.xtext.resource.IEObjectDescription;
@@ -19,9 +20,9 @@
*/
interface ScopeFinder {
- Collection<IEObjectDescription> fromProtoDescriptor(Import anImport, Object criteria);
+ Collection<IEObjectDescription> imported(Package fromImporter, Object target, Object criteria);
- Collection<IEObjectDescription> descriptions(Object target, Object criteria);
+ Collection<IEObjectDescription> inDescriptor(Import anImport, Object criteria);
- Collection<IEObjectDescription> descriptions(Object target, Object criteria, int level);
+ Collection<IEObjectDescription> local(Object target, Object criteria, int level);
}
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/TypeScopeFinder.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/TypeScopeFinder.java
index 001979a..ce3a3e1 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/TypeScopeFinder.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/TypeScopeFinder.java
@@ -13,6 +13,7 @@
import com.google.eclipse.protobuf.naming.LocalNamesProvider;
import com.google.eclipse.protobuf.protobuf.*;
+import com.google.eclipse.protobuf.protobuf.Package;
import com.google.inject.Inject;
import org.eclipse.emf.ecore.EObject;
@@ -29,8 +30,14 @@
@Inject private ProtoDescriptorProvider descriptorProvider;
@Inject private LocalNamesProvider localNamesProvider;
@Inject private QualifiedNameDescriptions qualifiedNamesDescriptions;
+
+ @Override public Collection<IEObjectDescription> imported(Package fromImporter, Object target, Object criteria) {
+ if (!isInstance(target, criteria)) return emptySet();
+ EObject e = (EObject) target;
+ return qualifiedNamesDescriptions.qualifiedNames(e);
+ }
- @Override public Collection<IEObjectDescription> fromProtoDescriptor(Import anImport, Object criteria) {
+ @Override public Collection<IEObjectDescription> inDescriptor(Import anImport, Object criteria) {
Set<IEObjectDescription> descriptions = new HashSet<IEObjectDescription>();
ProtoDescriptor descriptor = descriptorProvider.descriptor(anImport.getImportURI());
for (ComplexType type : descriptor.allTypes()) {
@@ -39,14 +46,8 @@
}
return descriptions;
}
-
- @Override public Collection<IEObjectDescription> descriptions(Object target, Object criteria) {
- if (!isInstance(target, criteria)) return emptySet();
- EObject e = (EObject) target;
- return qualifiedNamesDescriptions.qualifiedNames(e);
- }
- @Override public Collection<IEObjectDescription> descriptions(Object target, Object criteria, int level) {
+ @Override public Collection<IEObjectDescription> local(Object target, Object criteria, int level) {
if (!isInstance(target, criteria)) return emptySet();
EObject e = (EObject) target;
Set<IEObjectDescription> descriptions = new HashSet<IEObjectDescription>();