soot.javaToJimple
Class InitialResolver

java.lang.Object
  extended bysoot.javaToJimple.InitialResolver

public class InitialResolver
extends Object


Constructor Summary
InitialResolver(soot.Singletons.Global g)
           
 
Method Summary
protected  void addNameToAST(String name)
          add name to AST to map - used mostly for inner and non public top-level classes
 void addToAnonConstructorMap(polyglot.ast.New anonNew, polyglot.types.ConstructorInstance ci)
           
 void addToPrivateFieldGetAccessMap(polyglot.ast.Field field, SootMethod meth)
           
 void addToPrivateFieldSetAccessMap(polyglot.ast.Field field, SootMethod meth)
           
 void addToPrivateMethodGetAccessMap(polyglot.ast.Call call, SootMethod meth)
           
protected  HashMap classToSourceMap()
           
 HashMap finalLocalInfo()
           
 void formAst(String fullPath, List locations)
          Invokes polyglot and gets the AST for the source given in fullPath
 BiMap getAnonClassMap()
           
 HashMap getAnonTypeMap()
           
 polyglot.ast.Node getAst()
           
 polyglot.types.ConstructorInstance getConstructorForAnon(polyglot.ast.New anonNew)
           
 ArrayList getHasOuterRefInInit()
           
 HashMap getInnerClassInfoMap()
           
 ArrayList getInterfacesList()
           
 AbstractJBBFactory getJBBFactory()
           
 BiMap getLocalClassMap()
           
 HashMap getLocalTypeMap()
           
protected  int getNextAnonNum()
           
 int getNextPrivateAccessCounter()
           
 HashMap getPrivateFieldGetAccessMap()
           
 HashMap getPrivateFieldSetAccessMap()
           
 HashMap getPrivateMethodGetAccessMap()
           
 boolean hasASTForSootName(String name)
          returns true if there is an AST avail for given soot class
 boolean hasClassInnerTag(SootClass sc, String innerName)
           
 FastHierarchy hierarchy()
           
 void hierarchy(FastHierarchy fh)
           
 boolean isAnonInCCall(polyglot.types.ClassType anonType)
           
 void resolveAST()
           
 List resolveFromJavaFile(SootClass sc)
           
 void setAst(polyglot.ast.Node ast)
          if you have a special AST set it here then call resolveFormJavaFile on the soot class
 void setASTForSootName(String name)
          sets AST for given soot class if possible
 void setHasOuterRefInInit(ArrayList list)
           
 void setInnerClassInfoMap(HashMap map)
           
 void setJBBFactory(AbstractJBBFactory jbbFactory)
           
 void setSpecialAnonMap(HashMap map)
           
 HashMap specialAnonMap()
           
static InitialResolver v()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InitialResolver

public InitialResolver(soot.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 locations)
Invokes polyglot and gets the AST for the source given in fullPath


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 List resolveFromJavaFile(SootClass sc)

getNextAnonNum

protected int getNextAnonNum()

hasClassInnerTag

public boolean hasClassInnerTag(SootClass sc,
                                String innerName)

isAnonInCCall

public boolean isAnonInCCall(polyglot.types.ClassType anonType)

getAnonClassMap

public BiMap getAnonClassMap()

getLocalClassMap

public BiMap getLocalClassMap()

getAnonTypeMap

public HashMap getAnonTypeMap()

getLocalTypeMap

public HashMap getLocalTypeMap()

finalLocalInfo

public HashMap finalLocalInfo()

getNextPrivateAccessCounter

public int getNextPrivateAccessCounter()

getHasOuterRefInInit

public ArrayList getHasOuterRefInInit()

setHasOuterRefInInit

public void setHasOuterRefInInit(ArrayList list)

specialAnonMap

public HashMap specialAnonMap()

setSpecialAnonMap

public void setSpecialAnonMap(HashMap map)

hierarchy

public void hierarchy(FastHierarchy fh)

hierarchy

public FastHierarchy hierarchy()

getInnerClassInfoMap

public HashMap getInnerClassInfoMap()

setInnerClassInfoMap

public void setInnerClassInfoMap(HashMap map)

classToSourceMap

protected HashMap classToSourceMap()

addToPrivateFieldGetAccessMap

public void addToPrivateFieldGetAccessMap(polyglot.ast.Field field,
                                          SootMethod meth)

getPrivateFieldGetAccessMap

public HashMap getPrivateFieldGetAccessMap()

addToPrivateFieldSetAccessMap

public void addToPrivateFieldSetAccessMap(polyglot.ast.Field field,
                                          SootMethod meth)

getPrivateFieldSetAccessMap

public HashMap getPrivateFieldSetAccessMap()

addToPrivateMethodGetAccessMap

public void addToPrivateMethodGetAccessMap(polyglot.ast.Call call,
                                           SootMethod meth)

getPrivateMethodGetAccessMap

public HashMap getPrivateMethodGetAccessMap()

getInterfacesList

public ArrayList getInterfacesList()