Class ClassHierarchyStore
- java.lang.Object
-
- com.ibm.wala.shrike.shrikeBT.analysis.ClassHierarchyStore
-
- All Implemented Interfaces:
ClassHierarchyProvider
public final class ClassHierarchyStore extends java.lang.Object implements ClassHierarchyProvider
This implementation of ClassHierarchyProvider is a simple writable data structure representing a class hierarchy. You call setClassInfo to record information about a class.
-
-
Constructor Summary
Constructors Constructor Description ClassHierarchyStore()Create an empty store.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancontainsClass(java.lang.String cl)java.lang.String[]getSubClasses(java.lang.String cl)java.lang.StringgetSuperClass(java.lang.String cl)java.lang.String[]getSuperInterfaces(java.lang.String cl)intisInterface(java.lang.String cl)java.util.Iterator<java.lang.String>iterateOverClasses()Iterate through all classes in the store.voidremoveClassInfo(java.lang.String cl)Delete the class information from the store.voidsetClassInfo(java.lang.String cl, boolean isInterface, boolean isFinal, java.lang.String superClass, java.lang.String[] superInterfaces)Append some class information to the store.
-
-
-
Method Detail
-
containsClass
public boolean containsClass(java.lang.String cl)
-
setClassInfo
public void setClassInfo(java.lang.String cl, boolean isInterface, boolean isFinal, java.lang.String superClass, java.lang.String[] superInterfaces) throws java.lang.IllegalArgumentExceptionAppend some class information to the store.- Parameters:
cl- the JVM type of the class being added (e.g., Ljava/lang/Object;)isInterface- true iff it's an interfaceisFinal- true iff it's finalsuperClass- the JVM type of the superclass, or null if this is ObjectsuperInterfaces- the JVM types of its implemented interfaces- Throws:
java.lang.IllegalArgumentException
-
removeClassInfo
public void removeClassInfo(java.lang.String cl)
Delete the class information from the store.
-
iterateOverClasses
public java.util.Iterator<java.lang.String> iterateOverClasses()
Iterate through all classes in the store.
-
getSuperClass
public java.lang.String getSuperClass(java.lang.String cl)
- Specified by:
getSuperClassin interfaceClassHierarchyProvider- Returns:
- the superclass of the given class, or null if the superclass is not known or cl is java.lang.Object
-
getSuperInterfaces
public java.lang.String[] getSuperInterfaces(java.lang.String cl)
- Specified by:
getSuperInterfacesin interfaceClassHierarchyProvider- Returns:
- the superinterfaces of the given class, or null if they are not known
-
getSubClasses
public java.lang.String[] getSubClasses(java.lang.String cl)
- Specified by:
getSubClassesin interfaceClassHierarchyProvider- Returns:
- the complete set of direct subclasses or implementors of cl, or null if the complete set is not known
-
isInterface
public int isInterface(java.lang.String cl)
- Specified by:
isInterfacein interfaceClassHierarchyProvider- Returns:
- whether or not cl is an interface, or Constants.MAYBE if not known
-
-