1 20 21 26 27 28 29 30 31 32 package soot.jimple.internal; 33 34 import soot.*; 35 import soot.jimple.*; 36 import java.util.*; 37 import java.io.*; 38 39 abstract public class AbstractInvokeExpr implements InvokeExpr 40 { 41 protected SootMethodRef methodRef; 42 protected ValueBox[] argBoxes; 43 44 public void setMethodRef(SootMethodRef methodRef) { 45 this.methodRef = methodRef; 46 } 47 48 public SootMethodRef getMethodRef() 49 { 50 return methodRef; 51 } 52 53 public SootMethod getMethod() 54 { 55 return methodRef.resolve(); 56 } 57 58 public abstract Object clone(); 59 60 public Value getArg(int index) 61 { 62 return argBoxes[index].getValue(); 63 } 64 65 public List getArgs() 66 { 67 List l = new ArrayList(); 68 for (int i = 0; i < argBoxes.length; i++) 69 l.add(argBoxes[i].getValue()); 70 71 return l; 72 } 73 74 public int getArgCount() 75 { 76 return argBoxes.length; 77 } 78 79 public void setArg(int index, Value arg) 80 { 81 argBoxes[index].setValue(arg); 82 } 83 84 public ValueBox getArgBox(int index) 85 { 86 return argBoxes[index]; 87 } 88 89 public Type getType() 90 { 91 return methodRef.returnType(); 92 } 93 } 94 | Popular Tags |