Class StringBasedModel
java.lang.Object
pascal.taie.analysis.pta.plugin.util.SolverHolder
pascal.taie.analysis.pta.plugin.util.AbstractModel
pascal.taie.analysis.pta.plugin.reflection.StringBasedModel
- All Implemented Interfaces:
Model
-
Field Summary
Modifier and TypeFieldDescriptionprotected final pascal.taie.analysis.pta.plugin.reflection.MetaObjHelper
Fields inherited from class pascal.taie.analysis.pta.plugin.util.AbstractModel
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
(CSVar csVar, PointsToSet pts, Invoke invoke) protected void
classForNameKnown
(Context context, Invoke forName, String className) void
classGetConstructor
(CSVar csVar, PointsToSet pts, Invoke invoke) protected void
classGetConstructorKnown
(Context context, Invoke invoke, JClass clazz) void
classGetMethod
(CSVar csVar, PointsToSet pts, Invoke invoke) protected void
classGetMethodKnown
(Context context, Invoke invoke, JClass clazz, String name) protected void
handleNewNonInvokeStmt
(Stmt stmt) Methods inherited from class pascal.taie.analysis.pta.plugin.util.AbstractModel
getArgs, handleNewInvoke, handleNewPointsToSet, isRelevantVar, registerAPIHandler, registerRelevantVarIndexes, registerVarAndHandlers
-
Field Details
-
helper
protected final pascal.taie.analysis.pta.plugin.reflection.MetaObjHelper helper -
invokesWithLog
-
-
Method Details
-
handleNewNonInvokeStmt
-
classForName
@InvokeHandler(signature="<java.lang.Class: java.lang.Class forName(java.lang.String)>",argIndexes=0) @InvokeHandler(signature="<java.lang.Class: java.lang.Class forName(java.lang.String,boolean,java.lang.ClassLoader)>",argIndexes=0) public void classForName(CSVar csVar, PointsToSet pts, Invoke invoke) -
classGetConstructor
@InvokeHandler(signature="<java.lang.Class: java.lang.reflect.Constructor getConstructor(java.lang.Class[])>",argIndexes=-1) @InvokeHandler(signature="<java.lang.Class: java.lang.reflect.Constructor getDeclaredConstructor(java.lang.Class[])>",argIndexes=-1) public void classGetConstructor(CSVar csVar, PointsToSet pts, Invoke invoke) -
classGetMethod
@InvokeHandler(signature="<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>",argIndexes={-1,0}) @InvokeHandler(signature="<java.lang.Class: java.lang.reflect.Method getDeclaredMethod(java.lang.String,java.lang.Class[])>",argIndexes={-1,0}) public void classGetMethod(CSVar csVar, PointsToSet pts, Invoke invoke) -
classForNameKnown
-
classGetConstructorKnown
-
classGetMethodKnown
-