class AbstractOpTypeBranchInst extends AbstractBranchInst {

  protected Type opType;

  AbstractOpTypeBranchInst(Type opType, UnitBox targetBox) {
    super(targetBox);
    setOpType(opType);
  }

  public Type getOpType() {
    return this.opType;
  }

  public void setOpType(Type t) {
    this.opType = Baf.getDescriptorTypeOf(t);
  }

  @Override
  public int getInCount() {
    return 2;
  }

  @Override
  public int getOutCount() {
    return 0;
  }

  @Override
  public String toString() {<FILL_FUNCTION_BODY>}

  @Override
  public void toString(UnitPrinter up) {
    up.literal(getName());
    up.literal(".");
    up.literal(Baf.bafDescriptorOf(opType));
    up.literal(" ");
    targetBox.toString(up);
  }
}

    // do stuff with opType later.
    return getName() + "." + Baf.bafDescriptorOf(opType) + " " + getTarget();
  
<methods>public boolean branches() ,public soot.Unit getTarget() ,public soot.UnitBox getTargetBox() ,public List<soot.UnitBox> getUnitBoxes() ,public void setTarget(soot.Unit) ,public java.lang.String toString() ,public void toString(soot.UnitPrinter) <variables>soot.UnitBox targetBox,final non-sealed List<soot.UnitBox> targetBoxes