map from class name to jawa code of app.
map from class name to jawa code of app. E.g. record name java.lang.MyObject to its file
input ("Ljava/lang/String;", 1, "[", true) output "[Ljava/lang/String;"
input ("Ljava/lang/String;", 1, "[", true) output "[Ljava/lang/String;"
******************** JawaMethod related op end *************************
******************** JawaMethod related op end *************************
current Global contains the given class or not
current Global contains the given class or not
return true if contains the given field.
return true if contains the given field. Input example is java.lang.Throwable.stackState
return true if contains the given procedure.
return true if contains the given procedure. Input example is Ljava/lang/Object;.equals:(Ljava/lang/Object;)Z
find entry points from current app/test cases
find entry points from current app/test cases
convert type string from signature style to type.
convert type string from signature style to type. [Ljava/lang/Object; -> (java.lang.Object, 1)
generate signature of this field.
generate signature of this field. input: ("java.lang.Throwable", "stackState") output: "java.lang.Throwable.stackState"
generate signature of this method
generate signature of this method
get all the application classes
get all the application classes
retrieve the class hierarchy
retrieve the class hierarchy
get class name from field signature.
get class name from field signature. e.g. java.lang.Throwable.stackState -> java.lang.Throwable [Ljava.lang.String;.length -> [Ljava.lang.String;
get class by type, if not present resolve it.
get class by type, if not present resolve it.
get class name from field signature.
get class name from field signature. e.g. java.lang.Throwable.stackState -> java.lang.Throwable [Ljava.lang.String;.length -> [Ljava.lang.String;
get class by type; if it does not exist, return None
get class by type; if it does not exist, return None
get entry points
get entry points
grab field from Global.
grab field from Global. Input example is java.lang.Throwable.stackState
get field name from field FQN.
get field name from field FQN. e.g. java.lang.Throwable.stackState -> stackState
get procedure from Global.
get procedure from Global. Input example is Ljava/lang/Object;.equals:(Ljava/lang/Object;)Z
get procedure's containing record's code
get procedure's containing record's code
get outer class name from inner class name.
get outer class name from inner class name. e.g. android.os.Handler$Callback -> android.os.Handler
input ("java.lang.String", 1) output Type
input ("java.lang.String", 1) output Type
input: "java.lang.String[]" output: JawaType("java.lang.String", 1)
input: "java.lang.String[]" output: JawaType("java.lang.String", 1)
input: "[Ljava.lang.String;" output: JawaType("java.lang.String", 1)
input: "[Ljava.lang.String;" output: JawaType("java.lang.String", 1)
get all the third party lib classes
get all the third party lib classes
class hierarchy of all classes in the current Global
class hierarchy of all classes in the current Global
get all the application classes
get all the application classes
check if given string is field signature or not
check if given string is field signature or not
return true if the given typ is a inner class or not
return true if the given typ is a inner class or not
return whether given type is java primitive type
return whether given type is java primitive type
return whether given type is java primitive type
return whether given type is java primitive type
get all the system library classes
get all the system library classes
get all the third party lib classes
get all the third party lib classes
FQN of the field.
FQN of the field. e.g. java.lang.Throwable.stackState or @@java.lang.Enum.sharedConstantsCache
FQN of the field.
FQN of the field. e.g. java.lang.Throwable.stackState or @@java.lang.Enum.sharedConstantsCache
e.g.
e.g. java.lang.Throwable.run
load code from given root dir
load code from given root dir
remove class from Global Todo: Update hierarchy accordingly.
remove class from Global Todo: Update hierarchy accordingly.
reset the current Global
reset class hierarchy
reset class hierarchy
Resolve all application classes to Hierarchy level.
Resolve all application classes to Hierarchy level. Be careful, it will take some time.
resolve the given classes to desired level.
resolve the given classes to desired level.
resolve classes relation of the whole program
resolve classes relation of the whole program
resolve the given method's body to body level.
resolve the given method's body to body level.
resolve the given method code.
resolve the given method code. Normally only for dummyMain i.e. environment method
resolve the given class to body level.
resolve the given class to body level. Unknown class cannot resolve to body level. It will throw JawaResolverError if violate.
resolve the given class to hierarchy level
resolve the given class to hierarchy level
input: "java.lang.String" output: (Some("java.lang"), "String") input: "int" output: (None, "int")
input: "java.lang.String" output: (Some("java.lang"), "String") input: "int" output: (None, "int")
map from class name to jawa code of library.
map from class name to jawa code of library. E.g. class type java.lang.Object to its file