From ef8bdf506c48d7c9d2bd1f97030d123015c3ae44 Mon Sep 17 00:00:00 2001 From: Adrian Siekierka Date: Sun, 9 Dec 2018 12:38:11 +0100 Subject: add option to view calls to a method in general, not just the specific instance of the method --- src/main/java/cuchaz/enigma/analysis/JarIndex.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src/main/java/cuchaz/enigma/analysis/JarIndex.java') diff --git a/src/main/java/cuchaz/enigma/analysis/JarIndex.java b/src/main/java/cuchaz/enigma/analysis/JarIndex.java index 820ecbb..361c8e7 100644 --- a/src/main/java/cuchaz/enigma/analysis/JarIndex.java +++ b/src/main/java/cuchaz/enigma/analysis/JarIndex.java @@ -447,8 +447,22 @@ public class JarIndex { return this.methodsReferencingClasses.get(classEntry); } + @Deprecated public Collection> getMethodsReferencing(MethodEntry methodEntry) { - return this.methodsReferencing.get(methodEntry); + return getMethodsReferencing(methodEntry, false); + } + + public Collection> getMethodsReferencing(MethodEntry methodEntry, boolean recurse) { + if (!recurse) { + return this.methodsReferencing.get(methodEntry); + } + + List> references = new ArrayList<>(); + Set methodEntries = getRelatedMethodImplementations(methodEntry); + for (MethodEntry entry : methodEntries) { + references.addAll(getMethodsReferencing(entry, false)); + } + return references; } public Collection getReferencedMethods(MethodDefEntry methodEntry) { -- cgit v1.2.3