Class CompositePlugin

java.lang.Object
pascal.taie.analysis.pta.plugin.CompositePlugin
All Implemented Interfaces:
Plugin
Direct Known Subclasses:
NativeModeller, ReflectionAnalysis, TaintAnalysis

public class CompositePlugin extends Object implements Plugin
Composite plugin which allows multiple independent plugins to be used together.
  • Constructor Details

    • CompositePlugin

      public CompositePlugin()
  • Method Details

    • addPlugin

      public void addPlugin(Plugin... plugins)
    • clearPlugins

      public void clearPlugins()
    • setSolver

      public void setSolver(Solver solver)
      Description copied from interface: Plugin
      Sets pointer analysis solver which will be used later by the plugin.
      Specified by:
      setSolver in interface Plugin
    • onStart

      public void onStart()
      Description copied from interface: Plugin
      Invoked when pointer analysis starts.
      Specified by:
      onStart in interface Plugin
    • onPhaseFinish

      public void onPhaseFinish()
      Description copied from interface: Plugin
      Invoked when pointer analysis has processed all entries in the work list. Some plugins need to perform certain computation at this stage (so that it can collect enough points-to information in the program), and may further add entries to the work list to "restart" the pointer analysis.
      Specified by:
      onPhaseFinish in interface Plugin
    • onFinish

      public void onFinish()
      Description copied from interface: Plugin
      Invoked when pointer analysis finishes. Pointer analysis is supposed to have been finished at this stage, thus this call back should NOT modify pointer analysis results.
      Specified by:
      onFinish in interface Plugin
    • onNewPointsToSet

      public void onNewPointsToSet(CSVar csVar, PointsToSet pts)
      Description copied from interface: Plugin
      Invoked when set of new objects flow to a context-sensitive variable.
      Specified by:
      onNewPointsToSet in interface Plugin
      Parameters:
      csVar - variable whose points-to set changes
      pts - set of new objects
    • onNewCallEdge

      public void onNewCallEdge(Edge<CSCallSite,CSMethod> edge)
      Description copied from interface: Plugin
      Invoked when a new call graph edge is discovered.
      Specified by:
      onNewCallEdge in interface Plugin
      Parameters:
      edge - new call graph edge
    • onNewMethod

      public void onNewMethod(JMethod method)
      Description copied from interface: Plugin
      Invoked when a new reachable method is discovered.
      Specified by:
      onNewMethod in interface Plugin
      Parameters:
      method - new reachable method
    • onNewStmt

      public void onNewStmt(Stmt stmt, JMethod container)
      Description copied from interface: Plugin
      Invoked when a new reachable stmt is discovered.
      Specified by:
      onNewStmt in interface Plugin
      Parameters:
      stmt - new reachable stmt
      container - container method of stmt
    • onNewCSMethod

      public void onNewCSMethod(CSMethod csMethod)
      Description copied from interface: Plugin
      Invoked when a new reachable context-sensitive method is discovered.
      Specified by:
      onNewCSMethod in interface Plugin
      Parameters:
      csMethod - new reachable context-sensitive method
    • onUnresolvedCall

      public void onUnresolvedCall(CSObj recv, Context context, Invoke invoke)
      Description copied from interface: Plugin
      Invoked when pointer analysis failed to resolve callee (i.e., resolve to null) on a receiver object. Some plugins take over such cases to do their analyses.
      Specified by:
      onUnresolvedCall in interface Plugin
      Parameters:
      recv - the receiver object
      context - the context of the invocation
      invoke - the invocation site