Merge "Include class interfaces in jar scanning result"
This commit is contained in:
@@ -57,17 +57,26 @@ public class JarScanner {
|
|||||||
@Override
|
@Override
|
||||||
public ExtensionMetaData apply(ClassData classData) {
|
public ExtensionMetaData apply(ClassData classData) {
|
||||||
return new ExtensionMetaData(classData.className,
|
return new ExtensionMetaData(classData.className,
|
||||||
classData.annotationValue);
|
classData.annotationValue, classData.interfaces);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
private static final Function<String, String> TO_JAVA_QUALIFIED_CLASS_NAME =
|
||||||
|
new Function<String, String>() {
|
||||||
|
@Override
|
||||||
|
public String apply(String in) {
|
||||||
|
return in.replace("/", ".");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
public static class ExtensionMetaData {
|
public static class ExtensionMetaData {
|
||||||
private final String className;
|
private final String className;
|
||||||
private final String annotationValue;
|
private final String annotationValue;
|
||||||
|
private final Iterable<String> interfaces;
|
||||||
|
|
||||||
private ExtensionMetaData(String className, String annotationValue) {
|
private ExtensionMetaData(String className, String annotationValue, Iterable<String> interfaces) {
|
||||||
this.className = className;
|
this.className = className;
|
||||||
this.annotationValue = annotationValue;
|
this.annotationValue = annotationValue;
|
||||||
|
this.interfaces = interfaces;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getAnnotationValue() {
|
public String getAnnotationValue() {
|
||||||
@@ -77,6 +86,10 @@ public class JarScanner {
|
|||||||
public String getClassName() {
|
public String getClassName() {
|
||||||
return className;
|
return className;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Iterable<String> getInterfaces() {
|
||||||
|
return interfaces;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Map<Class<? extends Annotation>, Iterable<ExtensionMetaData>> scan(
|
public static Map<Class<? extends Annotation>, Iterable<ExtensionMetaData>> scan(
|
||||||
@@ -170,6 +183,7 @@ public class JarScanner {
|
|||||||
String className;
|
String className;
|
||||||
String annotationName;
|
String annotationName;
|
||||||
String annotationValue;
|
String annotationValue;
|
||||||
|
Iterable<String> interfaces;
|
||||||
Iterable<String> exports;
|
Iterable<String> exports;
|
||||||
|
|
||||||
private ClassData(Iterable<String> exports) {
|
private ClassData(Iterable<String> exports) {
|
||||||
@@ -185,6 +199,9 @@ public class JarScanner {
|
|||||||
@Override
|
@Override
|
||||||
public void visit(int version, int access, String name, String signature,
|
public void visit(int version, int access, String name, String signature,
|
||||||
String superName, String[] interfaces) {
|
String superName, String[] interfaces) {
|
||||||
|
this.interfaces =
|
||||||
|
Iterables.transform(Sets.newHashSet(interfaces),
|
||||||
|
TO_JAVA_QUALIFIED_CLASS_NAME);
|
||||||
this.className = Type.getObjectType(name).getClassName();
|
this.className = Type.getObjectType(name).getClassName();
|
||||||
this.access = access;
|
this.access = access;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user