add getOuterClass()

git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3538 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
This commit is contained in:
sjfink 2009-04-28 19:34:29 +00:00
parent 01272cd6e9
commit 50e093779a
1 changed files with 20 additions and 0 deletions

View File

@ -411,4 +411,24 @@ public final class ShrikeClass extends JVMClass<IClassLoader> {
}
return false;
}
/**
* If this is an inner class, return the outer class. Else return null.
* @throws InvalidClassFileException
*/
public TypeReference getOuterClass() throws InvalidClassFileException {
if (!isInnerClass()) {
return null;
}
InnerClassesReader r = getInnerClassesReader();
for (String s : r.getInnerClasses()) {
if (s.equals(getName().toString().substring(1))) {
String outer = r.getOuterClass(s);
if (outer != null) {
return TypeReference.findOrCreate(getClassLoader().getReference(), "L" + outer);
}
}
}
return null;
}
}