aboutsummaryrefslogtreecommitdiff
path: root/spark-common/src/main/java/me/lucko/spark/common/util
diff options
context:
space:
mode:
Diffstat (limited to 'spark-common/src/main/java/me/lucko/spark/common/util')
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/util/MethodDisambiguator.java57
1 files changed, 29 insertions, 28 deletions
diff --git a/spark-common/src/main/java/me/lucko/spark/common/util/MethodDisambiguator.java b/spark-common/src/main/java/me/lucko/spark/common/util/MethodDisambiguator.java
index 3b0ddc3..8553abb 100644
--- a/spark-common/src/main/java/me/lucko/spark/common/util/MethodDisambiguator.java
+++ b/spark-common/src/main/java/me/lucko/spark/common/util/MethodDisambiguator.java
@@ -85,6 +85,29 @@ public final class MethodDisambiguator {
}
}
+ private ComputedClass compute(String className) throws IOException {
+ final ImmutableListMultimap.Builder<String, MethodDescription> descriptionsByName = ImmutableListMultimap.builder();
+ final Map<Integer, MethodDescription> descriptionsByLine = new HashMap<>();
+
+ ClassReader classReader = getClassReader(className);
+ classReader.accept(new ClassVisitor(Opcodes.ASM7) {
+ @Override
+ public MethodVisitor visitMethod(int access, String name, String descriptor, String signature, String[] exceptions) {
+ MethodDescription description = new MethodDescription(name, descriptor);
+ descriptionsByName.put(name, description);
+
+ return new MethodVisitor(Opcodes.ASM7) {
+ @Override
+ public void visitLineNumber(int line, Label start) {
+ descriptionsByLine.put(line, description);
+ }
+ };
+ }
+ }, Opcodes.ASM7);
+
+ return new ComputedClass(descriptionsByName.build(), ImmutableMap.copyOf(descriptionsByLine));
+ }
+
private ClassReader getClassReader(String className) throws IOException {
String resource = className.replace('.', '/') + ".class";
@@ -106,28 +129,6 @@ public final class MethodDisambiguator {
throw new IOException("Unable to get resource: " + className);
}
- private ComputedClass compute(String className) throws IOException {
- ImmutableListMultimap.Builder<String, MethodDescription> descriptionsByName = ImmutableListMultimap.builder();
- Map<Integer, MethodDescription> descriptionsByLine = new HashMap<>();
-
- getClassReader(className).accept(new ClassVisitor(Opcodes.ASM7) {
- @Override
- public MethodVisitor visitMethod(int access, String name, String descriptor, String signature, String[] exceptions) {
- MethodDescription description = new MethodDescription(name, descriptor);
- descriptionsByName.put(name, description);
-
- return new MethodVisitor(Opcodes.ASM7) {
- @Override
- public void visitLineNumber(int line, Label start) {
- descriptionsByLine.put(line, description);
- }
- };
- }
- }, Opcodes.ASM7);
-
- return new ComputedClass(descriptionsByName.build(), ImmutableMap.copyOf(descriptionsByLine));
- }
-
private static final class ComputedClass {
private static final ComputedClass EMPTY = new ComputedClass(ImmutableListMultimap.of(), ImmutableMap.of());
@@ -142,24 +143,24 @@ public final class MethodDisambiguator {
public static final class MethodDescription {
private final String name;
- private final String desc;
+ private final String description;
- private MethodDescription(String name, String desc) {
+ private MethodDescription(String name, String description) {
this.name = name;
- this.desc = desc;
+ this.description = description;
}
public String getName() {
return this.name;
}
- public String getDesc() {
- return this.desc;
+ public String getDescription() {
+ return this.description;
}
@Override
public String toString() {
- return this.name + this.desc;
+ return this.name + this.description;
}
}