Code cleanup.
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ComplexTypeFinderStrategy.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ComplexTypeFinderStrategy.java
index 3f90d7b..346a39a 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ComplexTypeFinderStrategy.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ComplexTypeFinderStrategy.java
@@ -26,7 +26,7 @@
/**
* @author alruiz@google.com (Alex Ruiz)
*/
-class ComplexTypeFinderStrategy implements ModelElementFinder.FinderStrategy {
+class ComplexTypeFinderStrategy implements ModelElementFinder.FinderStrategy<Class<? extends ComplexType>> {
@Inject private PackageIntersectionDescriptions packageIntersectionDescriptions;
@Inject private ProtoDescriptorProvider descriptorProvider;
@Inject private LocalNamesProvider localNamesProvider;
@@ -34,8 +34,8 @@
@Inject private QualifiedNameDescriptions qualifiedNamesDescriptions;
@Override public Collection<IEObjectDescription> imported(Package fromImporter, Package fromImported, Object target,
- Object criteria) {
- if (!isInstance(target, criteria)) {
+ Class<? extends ComplexType> typeOfComplexType) {
+ if (!typeOfComplexType.isInstance(target)) {
return emptySet();
}
Set<IEObjectDescription> descriptions = newHashSet();
@@ -45,20 +45,23 @@
return descriptions;
}
- @Override public Collection<IEObjectDescription> inDescriptor(Import anImport, Object criteria) {
+ @Override public Collection<IEObjectDescription> inDescriptor(Import anImport,
+ Class<? extends ComplexType> typeOfComplexType) {
Set<IEObjectDescription> descriptions = newHashSet();
ProtoDescriptor descriptor = descriptorProvider.descriptor(anImport.getImportURI());
- for (ComplexType type : descriptor.allTypes()) {
- if (!isInstance(type, criteria)) {
+ for (ComplexType complexType : descriptor.allTypes()) {
+ if (!typeOfComplexType.isInstance(complexType)) {
continue;
}
- descriptions.addAll(qualifiedNamesDescriptions.qualifiedNames(type, namingStrategy));
+ descriptions.addAll(qualifiedNamesDescriptions.qualifiedNames(complexType, namingStrategy));
}
return descriptions;
}
- @Override public Collection<IEObjectDescription> local(Object target, Object criteria, int level) {
- if (!isInstance(target, criteria)) {
+ @Override
+ public Collection<IEObjectDescription> local(Object target, Class<? extends ComplexType> typeOfComplexType,
+ int level) {
+ if (!typeOfComplexType.isInstance(target)) {
return emptySet();
}
EObject e = (EObject) target;
@@ -71,16 +74,4 @@
descriptions.addAll(qualifiedNamesDescriptions.qualifiedNames(e, namingStrategy));
return descriptions;
}
-
- private boolean isInstance(Object target, Object criteria) {
- Class<?> targetType = targetTypeFrom(criteria);
- return targetType.isInstance(target);
- }
-
- private Class<?> targetTypeFrom(Object criteria) {
- if (criteria instanceof Class<?>) {
- return (Class<?>) criteria;
- }
- throw new IllegalArgumentException("Search criteria should be Class<?>");
- }
}
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/CustomOptionFinderStrategy.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/CustomOptionFinderStrategy.java
index 7af5fd1..8a14590 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/CustomOptionFinderStrategy.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/CustomOptionFinderStrategy.java
@@ -26,15 +26,14 @@
/**
* @author alruiz@google.com (Alex Ruiz)
*/
-class CustomOptionFinderStrategy implements ModelElementFinder.FinderStrategy {
+class CustomOptionFinderStrategy implements ModelElementFinder.FinderStrategy<OptionType> {
@Inject private LocalNamesProvider localNamesProvider;
@Inject private OptionNamingStrategy namingStrategy;
@Inject private QualifiedNameDescriptions qualifiedNamesDescriptions;
@Inject private TypeExtensions typeExtensions;
@Override public Collection<IEObjectDescription> imported(Package fromImporter, Package fromImported, Object target,
- Object criteria) {
- OptionType optionType = optionTypeFrom(criteria);
+ OptionType optionType) {
if (!isExtendingOptionMessage(target, optionType)) {
return emptySet();
}
@@ -46,12 +45,11 @@
return descriptions;
}
- @Override public Collection<IEObjectDescription> inDescriptor(Import anImport, Object criteria) {
+ @Override public Collection<IEObjectDescription> inDescriptor(Import anImport, OptionType criteria) {
return emptySet();
}
- @Override public Collection<IEObjectDescription> local(Object target, Object criteria, int level) {
- OptionType optionType = optionTypeFrom(criteria);
+ @Override public Collection<IEObjectDescription> local(Object target, OptionType optionType, int level) {
if (!isExtendingOptionMessage(target, optionType)) {
return emptySet();
}
@@ -68,13 +66,6 @@
return descriptions;
}
- private OptionType optionTypeFrom(Object criteria) {
- if (!(criteria instanceof OptionType)) {
- throw new IllegalArgumentException("Search criteria should be OptionType");
- }
- return (OptionType) criteria;
- }
-
private boolean isExtendingOptionMessage(Object o, OptionType optionType) {
if (!(o instanceof TypeExtension)) {
return false;
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ModelElementFinder.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ModelElementFinder.java
index 6428fbb..7d69160 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ModelElementFinder.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ModelElementFinder.java
@@ -36,7 +36,7 @@
@Inject private Resources resources;
@Inject private ResourceSets resourceSets;
- Collection<IEObjectDescription> find(EObject start, FinderStrategy strategy, Object criteria) {
+ <T> Collection<IEObjectDescription> find(EObject start, FinderStrategy<T> strategy, T criteria) {
Set<IEObjectDescription> descriptions = newHashSet();
descriptions.addAll(local(start, strategy, criteria));
Protobuf root = modelObjects.rootOf(start);
@@ -44,7 +44,7 @@
return unmodifiableSet(descriptions);
}
- private Collection<IEObjectDescription> local(EObject start, FinderStrategy strategy, Object criteria) {
+ private <T> Collection<IEObjectDescription> local(EObject start, FinderStrategy<T> strategy, T criteria) {
UniqueDescriptions descriptions = new UniqueDescriptions();
EObject current = start.eContainer();
while (current != null) {
@@ -54,14 +54,14 @@
return descriptions.values();
}
- Collection<IEObjectDescription> find(Protobuf start, FinderStrategy strategy, Object criteria) {
+ <T> Collection<IEObjectDescription> find(Protobuf start, FinderStrategy<T> strategy, T criteria) {
Set<IEObjectDescription> descriptions = newHashSet();
descriptions.addAll(local(start, strategy, criteria, 0));
descriptions.addAll(imported(start, strategy, criteria));
return unmodifiableSet(descriptions);
}
- private Collection<IEObjectDescription> local(EObject start, FinderStrategy strategy, Object criteria, int level) {
+ private <T> Collection<IEObjectDescription> local(EObject start, FinderStrategy<T> strategy, T criteria, int level) {
UniqueDescriptions descriptions = new UniqueDescriptions();
for (EObject element : start.eContents()) {
descriptions.addAll(strategy.local(element, criteria, level));
@@ -72,7 +72,7 @@
return descriptions.values();
}
- private Collection<IEObjectDescription> imported(Protobuf start, FinderStrategy strategy, Object criteria) {
+ private <T> Collection<IEObjectDescription> imported(Protobuf start, FinderStrategy<T> strategy, T criteria) {
List<Import> allImports = protobufs.importsIn(start);
if (allImports.isEmpty()) {
return emptyList();
@@ -81,8 +81,8 @@
return imported(allImports, modelObjects.packageOf(start), resourceSet, strategy, criteria);
}
- private Collection<IEObjectDescription> imported(List<Import> allImports, Package fromImporter,
- ResourceSet resourceSet, FinderStrategy strategy, Object criteria) {
+ private <T> Collection<IEObjectDescription> imported(List<Import> allImports, Package fromImporter,
+ ResourceSet resourceSet, FinderStrategy<T> strategy, T criteria) {
Set<IEObjectDescription> descriptions = newHashSet();
for (Import anImport : allImports) {
if (imports.isImportingDescriptor(anImport)) {
@@ -114,7 +114,7 @@
return descriptions;
}
- private Collection<IEObjectDescription> publicImported(Protobuf start, FinderStrategy strategy, Object criteria) {
+ private <T> Collection<IEObjectDescription> publicImported(Protobuf start, FinderStrategy<T> strategy, T criteria) {
if (!protobufs.isProto2(start)) {
return emptySet();
}
@@ -131,8 +131,8 @@
return packages.areRelated(aPackage, p);
}
- private Collection<IEObjectDescription> imported(Package fromImporter, Package fromImported, Resource resource,
- FinderStrategy strategy, Object criteria) {
+ private <T> Collection<IEObjectDescription> imported(Package fromImporter, Package fromImported, Resource resource,
+ FinderStrategy<T> strategy, T criteria) {
Set<IEObjectDescription> descriptions = newHashSet();
TreeIterator<Object> contents = getAllContents(resource, true);
while (contents.hasNext()) {
@@ -142,11 +142,11 @@
return descriptions;
}
- static interface FinderStrategy {
- Collection<IEObjectDescription> imported(Package fromImporter, Package fromImported, Object target, Object criteria);
+ static interface FinderStrategy<T> {
+ Collection<IEObjectDescription> imported(Package fromImporter, Package fromImported, Object target, T criteria);
- Collection<IEObjectDescription> inDescriptor(Import anImport, Object criteria);
+ Collection<IEObjectDescription> inDescriptor(Import anImport, T criteria);
- Collection<IEObjectDescription> local(Object target, Object criteria, int level);
+ Collection<IEObjectDescription> local(Object target, T criteria, int level);
}
}