public class SootResolver
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
class |
SootResolver.SootClassNotFoundException |
Modifier and Type | Field and Description |
---|---|
protected MultiMap<SootClass,Type> |
classToTypesHierarchy
Maps each resolved class to a list of all references in it.
|
protected MultiMap<SootClass,Type> |
classToTypesSignature
Maps each resolved class to a list of all references in it.
|
Constructor and Description |
---|
SootResolver(Singletons.Global g) |
Modifier and Type | Method and Description |
---|---|
protected void |
addToResolveWorklist(SootClass sc,
int desiredLevel) |
protected void |
addToResolveWorklist(Type type,
int level) |
protected void |
bringToBodies(SootClass sc)
Bodies - we can now start loading the bodies of methods for all referred to
methods and fields in the bodies, requires signatures for the method receiver
and field container, and hierarchy for all other classes referenced in method
references.
|
protected void |
bringToBodiesUnchecked(SootClass sc) |
protected void |
bringToHierarchy(SootClass sc)
Hierarchy - we know the hierarchy of the class and that's it requires at
least Hierarchy for all supertypes and enclosing types.
|
protected void |
bringToHierarchyUnchecked(SootClass sc) |
protected void |
bringToSignatures(SootClass sc)
Signatures - we know the signatures of all methods and fields requires at
least Hierarchy for all referred to types in these signatures.
|
protected void |
bringToSignaturesUnchecked(SootClass sc) |
Program |
getProgram() |
protected void |
initializeProgram() |
SootClass |
makeClassRef(java.lang.String className)
Returns a (possibly not yet resolved) SootClass to be used in references to a
class.
|
protected void |
processResolveWorklist()
Resolve all classes on toResolveWorklist.
|
void |
reResolve(SootClass cl) |
void |
reResolve(SootClass cl,
int newResolvingLevel) |
void |
reResolveHierarchy(SootClass sc) |
SootClass |
resolveClass(java.lang.String className,
int desiredLevel)
Resolves the given class.
|
protected boolean |
resolveEverything()
Returns true if we are resolving all class refs recursively.
|
static SootResolver |
v() |
protected MultiMap<SootClass,Type> classToTypesSignature
protected void initializeProgram()
public static SootResolver v()
protected boolean resolveEverything()
public SootClass makeClassRef(java.lang.String className)
public SootClass resolveClass(java.lang.String className, int desiredLevel)
protected void processResolveWorklist()
protected void addToResolveWorklist(Type type, int level)
protected void addToResolveWorklist(SootClass sc, int desiredLevel)
protected void bringToHierarchy(SootClass sc)
protected void bringToHierarchyUnchecked(SootClass sc)
public void reResolveHierarchy(SootClass sc)
protected void bringToSignatures(SootClass sc)
protected void bringToSignaturesUnchecked(SootClass sc)
protected void bringToBodies(SootClass sc)
protected void bringToBodiesUnchecked(SootClass sc)
public void reResolve(SootClass cl, int newResolvingLevel)
public void reResolve(SootClass cl)
public Program getProgram()