soot.jimple.spark.builder
Class MethodNodeFactory

java.lang.Object
  extended by soot.jimple.AbstractJimpleValueSwitch
      extended by soot.shimple.AbstractShimpleValueSwitch
          extended by soot.jimple.spark.builder.MethodNodeFactory
All Implemented Interfaces:
ConstantSwitch, ExprSwitch, JimpleValueSwitch, RefSwitch, ShimpleExprSwitch, ShimpleValueSwitch, Switch

public class MethodNodeFactory
extends AbstractShimpleValueSwitch

Class implementing builder parameters (this decides what kinds of nodes should be built for each kind of Soot value).

Author:
Ondrej Lhotak

Field Summary
protected  SootMethod method
           
protected  MethodPAG mpag
           
protected  PAG pag
           
 
Constructor Summary
MethodNodeFactory(PAG pag, MethodPAG mpag)
           
 
Method Summary
 Node caseArray(VarNode base)
           
 void caseArrayRef(ArrayRef ar)
           
 void caseCastExpr(CastExpr ce)
           
 void caseCaughtExceptionRef(CaughtExceptionRef cer)
           
 void caseClassConstant(ClassConstant cc)
           
 void caseInstanceFieldRef(InstanceFieldRef ifr)
           
 void caseLocal(Local l)
           
 void caseNewArrayExpr(NewArrayExpr nae)
           
 void caseNewExpr(NewExpr ne)
           
 void caseNewMultiArrayExpr(NewMultiArrayExpr nmae)
           
 void caseNullConstant(NullConstant nr)
           
 void caseParameterRef(ParameterRef pr)
           
 Node caseParm(int index)
           
 void casePhiExpr(PhiExpr e)
           
 Node caseRet()
           
 void caseStaticFieldRef(StaticFieldRef sfr)
           
 void caseStringConstant(StringConstant sc)
           
 Node caseThis()
           
 void caseThisRef(ThisRef tr)
           
 void defaultCase(Object v)
           
 Node getNode()
           
 Node getNode(Value v)
           
 void handleStmt(Stmt s)
          Adds the edges required for this statement to the graph.
 
Methods inherited from class soot.jimple.AbstractJimpleValueSwitch
caseAddExpr, caseAndExpr, caseCmpExpr, caseCmpgExpr, caseCmplExpr, caseDivExpr, caseDoubleConstant, caseDynamicInvokeExpr, caseEqExpr, caseFloatConstant, caseGeExpr, caseGtExpr, caseInstanceOfExpr, caseIntConstant, caseInterfaceInvokeExpr, caseLeExpr, caseLengthExpr, caseLongConstant, caseLtExpr, caseMulExpr, caseNeExpr, caseNegExpr, caseOrExpr, caseRemExpr, caseShlExpr, caseShrExpr, caseSpecialInvokeExpr, caseStaticInvokeExpr, caseSubExpr, caseUshrExpr, caseVirtualInvokeExpr, caseXorExpr, getResult, setResult
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface soot.jimple.ConstantSwitch
caseDoubleConstant, caseFloatConstant, caseIntConstant, caseLongConstant
 
Methods inherited from interface soot.jimple.ExprSwitch
caseAddExpr, caseAndExpr, caseCmpExpr, caseCmpgExpr, caseCmplExpr, caseDivExpr, caseDynamicInvokeExpr, caseEqExpr, caseGeExpr, caseGtExpr, caseInstanceOfExpr, caseInterfaceInvokeExpr, caseLeExpr, caseLengthExpr, caseLtExpr, caseMulExpr, caseNeExpr, caseNegExpr, caseOrExpr, caseRemExpr, caseShlExpr, caseShrExpr, caseSpecialInvokeExpr, caseStaticInvokeExpr, caseSubExpr, caseUshrExpr, caseVirtualInvokeExpr, caseXorExpr
 

Field Detail

pag

protected PAG pag

mpag

protected MethodPAG mpag

method

protected SootMethod method
Constructor Detail

MethodNodeFactory

public MethodNodeFactory(PAG pag,
                         MethodPAG mpag)
Method Detail

getNode

public Node getNode(Value v)

handleStmt

public final void handleStmt(Stmt s)
Adds the edges required for this statement to the graph.


getNode

public final Node getNode()

caseThis

public final Node caseThis()

caseParm

public final Node caseParm(int index)

casePhiExpr

public final void casePhiExpr(PhiExpr e)
Specified by:
casePhiExpr in interface ShimpleExprSwitch
Overrides:
casePhiExpr in class AbstractShimpleValueSwitch

caseRet

public final Node caseRet()

caseArray

public final Node caseArray(VarNode base)

caseArrayRef

public final void caseArrayRef(ArrayRef ar)
Specified by:
caseArrayRef in interface RefSwitch
Overrides:
caseArrayRef in class AbstractJimpleValueSwitch

caseCastExpr

public final void caseCastExpr(CastExpr ce)
Specified by:
caseCastExpr in interface ExprSwitch
Overrides:
caseCastExpr in class AbstractJimpleValueSwitch

caseCaughtExceptionRef

public final void caseCaughtExceptionRef(CaughtExceptionRef cer)
Specified by:
caseCaughtExceptionRef in interface RefSwitch
Overrides:
caseCaughtExceptionRef in class AbstractJimpleValueSwitch

caseInstanceFieldRef

public final void caseInstanceFieldRef(InstanceFieldRef ifr)
Specified by:
caseInstanceFieldRef in interface RefSwitch
Overrides:
caseInstanceFieldRef in class AbstractJimpleValueSwitch

caseLocal

public final void caseLocal(Local l)
Specified by:
caseLocal in interface JimpleValueSwitch
Overrides:
caseLocal in class AbstractJimpleValueSwitch

caseNewArrayExpr

public final void caseNewArrayExpr(NewArrayExpr nae)
Specified by:
caseNewArrayExpr in interface ExprSwitch
Overrides:
caseNewArrayExpr in class AbstractJimpleValueSwitch

caseNewExpr

public final void caseNewExpr(NewExpr ne)
Specified by:
caseNewExpr in interface ExprSwitch
Overrides:
caseNewExpr in class AbstractJimpleValueSwitch

caseNewMultiArrayExpr

public final void caseNewMultiArrayExpr(NewMultiArrayExpr nmae)
Specified by:
caseNewMultiArrayExpr in interface ExprSwitch
Overrides:
caseNewMultiArrayExpr in class AbstractJimpleValueSwitch

caseParameterRef

public final void caseParameterRef(ParameterRef pr)
Specified by:
caseParameterRef in interface RefSwitch
Overrides:
caseParameterRef in class AbstractJimpleValueSwitch

caseStaticFieldRef

public final void caseStaticFieldRef(StaticFieldRef sfr)
Specified by:
caseStaticFieldRef in interface RefSwitch
Overrides:
caseStaticFieldRef in class AbstractJimpleValueSwitch

caseStringConstant

public final void caseStringConstant(StringConstant sc)
Specified by:
caseStringConstant in interface ConstantSwitch
Overrides:
caseStringConstant in class AbstractJimpleValueSwitch

caseThisRef

public final void caseThisRef(ThisRef tr)
Specified by:
caseThisRef in interface RefSwitch
Overrides:
caseThisRef in class AbstractJimpleValueSwitch

caseNullConstant

public final void caseNullConstant(NullConstant nr)
Specified by:
caseNullConstant in interface ConstantSwitch
Overrides:
caseNullConstant in class AbstractJimpleValueSwitch

caseClassConstant

public final void caseClassConstant(ClassConstant cc)
Specified by:
caseClassConstant in interface ConstantSwitch
Overrides:
caseClassConstant in class AbstractJimpleValueSwitch

defaultCase

public final void defaultCase(Object v)
Specified by:
defaultCase in interface ConstantSwitch
Specified by:
defaultCase in interface ExprSwitch
Specified by:
defaultCase in interface RefSwitch
Overrides:
defaultCase in class AbstractJimpleValueSwitch