add an application class
add class into Global
add a system library class
add a third party library class
set of application classes contained by the current Global
set of application classes contained by the current Global
input ("Ljava/lang/String;", 1, "[", true) output "[Ljava/lang/String;"
input ("Ljava/lang/String;", 1, "[", true) output "[Ljava/lang/String;"
set of classes contained by the current Global
set of classes contained by the current Global
******************** JawaMethod related op end *************************
******************** JawaMethod related op end *************************
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
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
retrieve the normal 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 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 classes
get class by type; if it does not exist, return None
get containing set of given class
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 outer class name from inner class name.
get outer class name from inner class name. e.g. android.os.Handler$Callback -> android.os.Handler
get all the system library classes
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)
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
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 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
remove application class
remove class from Global
remove given class from containing set
remove System Library Class
remove third party lib class
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")
set of system library classes contained by the current Global
set of system library classes contained by the current Global
set of third party lib classes contained by the current Global
set of third party lib classes contained by the current Global