public class Hierarchy extends Object
Constructor and Description |
---|
Hierarchy()
Constructs a hierarchy from the current scene.
|
Modifier and Type | Method and Description |
---|---|
List<SootClass> |
getDirectImplementersOf(SootClass i)
Returns a list of direct implementers of c, excluding itself.
|
List<SootClass> |
getDirectSubclassesOf(SootClass c)
Returns a list of direct subclasses of c, excluding c.
|
List<SootClass> |
getDirectSubclassesOfIncluding(SootClass c)
Returns a list of direct subclasses of c, including c.
|
List<SootClass> |
getDirectSubinterfacesOf(SootClass c)
Returns a list of direct subinterfaces of c.
|
List<SootClass> |
getDirectSubinterfacesOfIncluding(SootClass c)
Returns a list of direct subinterfaces of c, including itself.
|
List<SootClass> |
getDirectSuperclassesOf(SootClass c)
Returns a list of direct superclasses of c, excluding c.
|
List<SootClass> |
getDirectSuperinterfacesOf(SootClass c)
Returns a list of direct superinterfaces of c.
|
List<SootClass> |
getImplementersOf(SootClass i)
Returns a list of implementers of c, excluding itself.
|
SootClass |
getLeastCommonSuperclassOf(SootClass c1,
SootClass c2)
Returns the most specific type which is an ancestor of both c1 and c2.
|
List<SootClass> |
getSubclassesOf(SootClass c)
Returns a list of subclasses of c, excluding itself.
|
List<SootClass> |
getSubclassesOfIncluding(SootClass c)
Returns a list of subclasses of c, including itself.
|
List<SootClass> |
getSubinterfacesOf(SootClass c)
Returns a list of subinterfaces of c, excluding itself.
|
List<SootClass> |
getSubinterfacesOfIncluding(SootClass c)
Returns a list of subinterfaces of c, including itself.
|
List<SootClass> |
getSuperclassesOf(SootClass c)
Returns a list of strict superclasses of c, starting with c's parent.
|
List<SootClass> |
getSuperclassesOfIncluding(SootClass c)
Returns a list of superclasses of c, including itself.
|
List<SootClass> |
getSuperinterfacesOf(SootClass c)
Returns a list of superinterfaces of c, excluding itself.
|
List<SootClass> |
getSuperinterfacesOfIncluding(SootClass c)
Returns a list of superinterfaces of c, including itself.
|
boolean |
isClassDirectSubclassOf(SootClass c,
SootClass c2)
Returns true if child is a direct subclass of possibleParent.
|
boolean |
isClassSubclassOf(SootClass child,
SootClass possibleParent)
Returns true if child is a subclass of possibleParent.
|
boolean |
isClassSubclassOfIncluding(SootClass child,
SootClass possibleParent)
Returns true if child is, or is a subclass of, possibleParent.
|
boolean |
isClassSuperclassOf(SootClass parent,
SootClass possibleChild)
Returns true if child is a superclass of possibleParent.
|
boolean |
isClassSuperclassOfIncluding(SootClass parent,
SootClass possibleChild)
Returns true if parent is, or is a superclass of, possibleChild.
|
boolean |
isInterfaceDirectSubinterfaceOf(SootClass child,
SootClass possibleParent)
Returns true if child is a direct subinterface of possibleParent.
|
boolean |
isInterfaceDirectSuperinterfaceOf(SootClass parent,
SootClass possibleChild)
Returns true if parent is a direct superinterface of possibleChild.
|
boolean |
isInterfaceSubinterfaceOf(SootClass child,
SootClass possibleParent)
Returns true if child is a subinterface of possibleParent.
|
boolean |
isInterfaceSuperinterfaceOf(SootClass parent,
SootClass possibleChild)
Returns true if parent is a superinterface of possibleChild.
|
boolean |
isVisible(SootClass from,
ClassMember m)
Returns true if the classmember m is visible from code in the class from.
|
boolean |
isVisible(SootClass from,
SootClass check)
Checks whether check is a visible class in view of the from class.
|
List<SootMethod> |
resolveAbstractDispatch(List<SootClass> classes,
SootMethod m)
Returns a list of possible targets for the given method and set of receiver types.
|
List<SootMethod> |
resolveAbstractDispatch(SootClass c,
SootMethod m)
Given an abstract dispatch to an object of type c and a method m, gives
a list of possible receiver methods.
|
List<SootMethod> |
resolveConcreteDispatch(List<Type> classes,
SootMethod m)
Given a set of definite receiver types, returns a list of possible targets.
|
SootMethod |
resolveConcreteDispatch(SootClass concreteType,
SootMethod m)
Given an object of actual type C (o = new C()), returns the method which
will be called on an o.f() invocation.
|
SootMethod |
resolveSpecialDispatch(SpecialInvokeExpr ie,
SootMethod container)
Returns the target for the given SpecialInvokeExpr.
|
public List<SootClass> getSubclassesOfIncluding(SootClass c)
public List<SootClass> getSubclassesOf(SootClass c)
public List<SootClass> getSuperclassesOfIncluding(SootClass c)
public List<SootClass> getSuperclassesOf(SootClass c)
public List<SootClass> getSubinterfacesOfIncluding(SootClass c)
public List<SootClass> getSubinterfacesOf(SootClass c)
public List<SootClass> getSuperinterfacesOfIncluding(SootClass c)
public List<SootClass> getSuperinterfacesOf(SootClass c)
public List<SootClass> getDirectSuperclassesOf(SootClass c)
public List<SootClass> getDirectSubclassesOf(SootClass c)
public List<SootClass> getDirectSubclassesOfIncluding(SootClass c)
public List<SootClass> getDirectSuperinterfacesOf(SootClass c)
public List<SootClass> getDirectSubinterfacesOf(SootClass c)
public List<SootClass> getDirectSubinterfacesOfIncluding(SootClass c)
public List<SootClass> getDirectImplementersOf(SootClass i)
public List<SootClass> getImplementersOf(SootClass i)
public boolean isClassSubclassOf(SootClass child, SootClass possibleParent)
public boolean isClassSubclassOfIncluding(SootClass child, SootClass possibleParent)
public boolean isClassDirectSubclassOf(SootClass c, SootClass c2)
public boolean isClassSuperclassOf(SootClass parent, SootClass possibleChild)
public boolean isClassSuperclassOfIncluding(SootClass parent, SootClass possibleChild)
public boolean isInterfaceSubinterfaceOf(SootClass child, SootClass possibleParent)
public boolean isInterfaceDirectSubinterfaceOf(SootClass child, SootClass possibleParent)
public boolean isInterfaceSuperinterfaceOf(SootClass parent, SootClass possibleChild)
public boolean isInterfaceDirectSuperinterfaceOf(SootClass parent, SootClass possibleChild)
public SootClass getLeastCommonSuperclassOf(SootClass c1, SootClass c2)
public boolean isVisible(SootClass from, SootClass check)
public boolean isVisible(SootClass from, ClassMember m)
public SootMethod resolveConcreteDispatch(SootClass concreteType, SootMethod m)
public List<SootMethod> resolveConcreteDispatch(List<Type> classes, SootMethod m)
public List<SootMethod> resolveAbstractDispatch(SootClass c, SootMethod m)
public List<SootMethod> resolveAbstractDispatch(List<SootClass> classes, SootMethod m)
public SootMethod resolveSpecialDispatch(SpecialInvokeExpr ie, SootMethod container)