Package soot.javaToJimple
Class InitialResolver
- java.lang.Object
-
- soot.javaToJimple.InitialResolver
-
- All Implemented Interfaces:
IInitialResolver
public class InitialResolver extends Object implements IInitialResolver
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface soot.javaToJimple.IInitialResolver
IInitialResolver.Dependencies
-
-
Constructor Summary
Constructors Constructor Description InitialResolver(Singletons.Global g)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidaddNameToAST(String name)add name to AST to map - used mostly for inner and non public top-level classesvoidaddToAnonConstructorMap(polyglot.ast.New anonNew, polyglot.types.ConstructorInstance ci)voidaddToPrivateFieldGetAccessMap(polyglot.ast.Field field, SootMethod meth)voidaddToPrivateFieldSetAccessMap(polyglot.ast.Field field, SootMethod meth)voidaddToPrivateMethodGetAccessMap(polyglot.ast.Call call, SootMethod meth)protected HashMap<String,String>classToSourceMap()HashMap<polyglot.util.IdentityKey,AnonLocalClassInfo>finalLocalInfo()voidformAst(String fullPath, List<String> locations, String className)Invokes polyglot and gets the AST for the source given in fullPathBiMapgetAnonClassMap()HashMap<polyglot.util.IdentityKey,String>getAnonTypeMap()polyglot.ast.NodegetAst()polyglot.types.ConstructorInstancegetConstructorForAnon(polyglot.ast.New anonNew)ArrayListgetHasOuterRefInInit()HashMap<SootClass,InnerClassInfo>getInnerClassInfoMap()ArrayList<String>getInterfacesList()AbstractJBBFactorygetJBBFactory()BiMapgetLocalClassMap()HashMap<polyglot.util.IdentityKey,String>getLocalTypeMap()protected intgetNextAnonNum()intgetNextPrivateAccessCounter()HashMap<polyglot.util.IdentityKey,SootMethod>getPrivateFieldGetAccessMap()HashMap<polyglot.util.IdentityKey,SootMethod>getPrivateFieldSetAccessMap()HashMap<polyglot.util.IdentityKey,SootMethod>getPrivateMethodGetAccessMap()booleanhasASTForSootName(String name)returns true if there is an AST avail for given soot classbooleanhasClassInnerTag(SootClass sc, String innerName)FastHierarchyhierarchy()voidhierarchy(FastHierarchy fh)booleanisAnonInCCall(polyglot.types.ClassType anonType)voidresolveAST()IInitialResolver.DependenciesresolveFromJavaFile(SootClass sc)voidsetAst(polyglot.ast.Node ast)if you have a special AST set it here then call resolveFormJavaFile on the soot classvoidsetASTForSootName(String name)sets AST for given soot class if possiblevoidsetHasOuterRefInInit(ArrayList list)voidsetInnerClassInfoMap(HashMap<SootClass,InnerClassInfo> map)voidsetJBBFactory(AbstractJBBFactory jbbFactory)voidsetSpecialAnonMap(HashMap<SootClass,SootClass> map)HashMap<SootClass,SootClass>specialAnonMap()static InitialResolverv()
-
-
-
Constructor Detail
-
InitialResolver
public InitialResolver(Singletons.Global g)
-
-
Method Detail
-
addToAnonConstructorMap
public void addToAnonConstructorMap(polyglot.ast.New anonNew, polyglot.types.ConstructorInstance ci)
-
getConstructorForAnon
public polyglot.types.ConstructorInstance getConstructorForAnon(polyglot.ast.New anonNew)
-
setJBBFactory
public void setJBBFactory(AbstractJBBFactory jbbFactory)
-
getJBBFactory
public AbstractJBBFactory getJBBFactory()
-
hasASTForSootName
public boolean hasASTForSootName(String name)
returns true if there is an AST avail for given soot class
-
setASTForSootName
public void setASTForSootName(String name)
sets AST for given soot class if possible
-
v
public static InitialResolver v()
-
formAst
public void formAst(String fullPath, List<String> locations, String className)
Invokes polyglot and gets the AST for the source given in fullPath- Specified by:
formAstin interfaceIInitialResolver
-
setAst
public void setAst(polyglot.ast.Node ast)
if you have a special AST set it here then call resolveFormJavaFile on the soot class
-
getAst
public polyglot.ast.Node getAst()
-
addNameToAST
protected void addNameToAST(String name)
add name to AST to map - used mostly for inner and non public top-level classes
-
resolveAST
public void resolveAST()
-
resolveFromJavaFile
public IInitialResolver.Dependencies resolveFromJavaFile(SootClass sc)
- Specified by:
resolveFromJavaFilein interfaceIInitialResolver
-
getNextAnonNum
protected int getNextAnonNum()
-
isAnonInCCall
public boolean isAnonInCCall(polyglot.types.ClassType anonType)
-
getAnonClassMap
public BiMap getAnonClassMap()
-
getLocalClassMap
public BiMap getLocalClassMap()
-
finalLocalInfo
public HashMap<polyglot.util.IdentityKey,AnonLocalClassInfo> finalLocalInfo()
-
getNextPrivateAccessCounter
public int getNextPrivateAccessCounter()
-
getHasOuterRefInInit
public ArrayList getHasOuterRefInInit()
-
setHasOuterRefInInit
public void setHasOuterRefInInit(ArrayList list)
-
hierarchy
public void hierarchy(FastHierarchy fh)
-
hierarchy
public FastHierarchy hierarchy()
-
getInnerClassInfoMap
public HashMap<SootClass,InnerClassInfo> getInnerClassInfoMap()
-
setInnerClassInfoMap
public void setInnerClassInfoMap(HashMap<SootClass,InnerClassInfo> map)
-
addToPrivateFieldGetAccessMap
public void addToPrivateFieldGetAccessMap(polyglot.ast.Field field, SootMethod meth)
-
getPrivateFieldGetAccessMap
public HashMap<polyglot.util.IdentityKey,SootMethod> getPrivateFieldGetAccessMap()
-
addToPrivateFieldSetAccessMap
public void addToPrivateFieldSetAccessMap(polyglot.ast.Field field, SootMethod meth)
-
getPrivateFieldSetAccessMap
public HashMap<polyglot.util.IdentityKey,SootMethod> getPrivateFieldSetAccessMap()
-
addToPrivateMethodGetAccessMap
public void addToPrivateMethodGetAccessMap(polyglot.ast.Call call, SootMethod meth)
-
getPrivateMethodGetAccessMap
public HashMap<polyglot.util.IdentityKey,SootMethod> getPrivateMethodGetAccessMap()
-
-