Class StringBasedModel
java.lang.Object
pascal.taie.analysis.pta.plugin.util.SolverHolder
pascal.taie.analysis.pta.plugin.util.AnalysisModelPlugin
pascal.taie.analysis.pta.plugin.reflection.StringBasedModel
- All Implemented Interfaces:
Plugin
-
Field Summary
Modifier and TypeFieldDescriptionprotected final pascal.taie.analysis.pta.plugin.reflection.MetaObjHelper
Fields inherited from class pascal.taie.analysis.pta.plugin.util.AnalysisModelPlugin
handlers, relevantVarIndexes, relevantVars
Fields inherited from class pascal.taie.analysis.pta.plugin.util.SolverHolder
csManager, emptyContext, heapModel, hierarchy, selector, solver, typeSystem
-
Method Summary
Modifier and TypeMethodDescriptionvoid
classForName
(Context context, Invoke invoke, PointsToSet nameObjs) protected void
classForNameKnown
(Context context, Invoke forName, String className) void
classGetConstructor
(Context context, Invoke invoke, PointsToSet classObjs) protected void
classGetConstructorKnown
(Context context, Invoke invoke, JClass clazz) void
classGetMethod
(Context context, Invoke invoke, PointsToSet classObjs, PointsToSet nameObjs) protected void
classGetMethodKnown
(Context context, Invoke invoke, JClass clazz, String name) protected void
Methods inherited from class pascal.taie.analysis.pta.plugin.util.AnalysisModelPlugin
onNewPointsToSet, onNewStmt, registerHandler
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface pascal.taie.analysis.pta.plugin.Plugin
onFinish, onNewCallEdge, onNewCSMethod, onNewMethod, onPhaseFinish, onStart, onUnresolvedCall, setSolver
-
Field Details
-
helper
protected final pascal.taie.analysis.pta.plugin.reflection.MetaObjHelper helper -
invokesWithLog
-
-
Method Details
-
classForName
@InvokeHandler(signature={"<java.lang.Class: java.lang.Class forName(java.lang.String)>","<java.lang.Class: java.lang.Class forName(java.lang.String,boolean,java.lang.ClassLoader)>"}, argIndexes=0) public void classForName(Context context, Invoke invoke, PointsToSet nameObjs) -
classGetConstructor
@InvokeHandler(signature={"<java.lang.Class: java.lang.reflect.Constructor getConstructor(java.lang.Class[])>","<java.lang.Class: java.lang.reflect.Constructor getDeclaredConstructor(java.lang.Class[])>"}, argIndexes=-1) public void classGetConstructor(Context context, Invoke invoke, PointsToSet classObjs) -
classGetMethod
@InvokeHandler(signature={"<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>","<java.lang.Class: java.lang.reflect.Method getDeclaredMethod(java.lang.String,java.lang.Class[])>"}, argIndexes={-1,0}) public void classGetMethod(Context context, Invoke invoke, PointsToSet classObjs, PointsToSet nameObjs) -
classForNameKnown
-
classGetConstructorKnown
-
classGetMethodKnown
-
registerHandlers
protected void registerHandlers()
-