1 19 20 25 26 27 28 29 30 package soot; 31 32 import soot.util.*; 33 import java.util.*; 34 35 37 public abstract class AbstractUnitBox implements UnitBox 38 { 39 protected Unit unit; 40 41 public abstract boolean canContainUnit(Unit u); 42 43 public boolean isBranchTarget() 44 { 45 return true; 46 } 47 48 public void setUnit(Unit unit) 49 { 50 if(!canContainUnit(unit)) 51 throw new RuntimeException ("attempting to put invalid unit in UnitBox"); 52 53 if(this.unit != null) 55 { 56 this.unit.removeBoxPointingToThis(this); 57 } 58 59 this.unit = unit; 61 62 if(this.unit != null) 64 { 65 this.unit.addBoxPointingToThis(this); 66 } 67 } 68 69 public Unit getUnit() 70 { 71 return unit; 72 } 73 74 public void toString(UnitPrinter up) { 75 up.startUnitBox(this); 76 up.unitRef(unit, isBranchTarget()); 77 up.endUnitBox(this); 78 } 79 } 80 | Popular Tags |