1 19 20 25 26 27 28 29 30 package soot.baf.internal; 31 32 import soot.*; 33 import soot.baf.*; 34 import soot.util.*; 35 import java.util.*; 36 37 public abstract class AbstractInst extends AbstractUnit implements Inst 38 { 39 40 public String toString() 41 { 42 return getName() + getParameters(); 43 } 44 45 public void toString(UnitPrinter up) { 46 up.literal(getName()); 47 getParameters(up); 48 } 49 50 51 public int getInCount() 52 { 53 throw new RuntimeException ("undefined "+ toString() + "!" ); 54 } 55 56 public int getOutCount() 57 { 58 throw new RuntimeException ("undefined " + toString() + "!"); 59 } 60 61 public int getNetCount() 62 { 63 return getOutCount() - getInCount(); 64 } 65 66 67 68 public boolean fallsThrough() 69 { 70 return true; 71 } 72 public boolean branches() 73 { 74 return false; 75 } 76 77 78 79 80 public int getInMachineCount() 81 { 82 throw new RuntimeException ("undefined"+ toString() + "!" ); 83 } 84 85 public int getOutMachineCount() 86 { 87 throw new RuntimeException ("undefined" + toString() + "!"); 88 } 89 90 public int getNetMachineCount() 91 { 92 return getOutMachineCount() - getInMachineCount(); 93 } 94 95 96 public Object clone() 97 { 98 throw new RuntimeException ("undefined clone for: " + this.toString()); 99 } 100 101 102 public abstract String getName(); 103 String getParameters() { return ""; } 104 protected void getParameters(UnitPrinter up) {} 105 106 public boolean containsInvokeExpr() { return false; } 107 public boolean containsArrayRef() { return false; } 108 public boolean containsFieldRef() { return false; } 109 public boolean containsNewExpr() { return false; } 110 } 111 | Popular Tags |