class JThrowStmt extends AbstractOpStmt implements ThrowStmt {

  public JThrowStmt(Value op) {
    this(Jimple.v().newImmediateBox(op));
  }

  protected JThrowStmt(ValueBox opBox) {
    super(opBox);
  }

  @Override
  public Object clone() {
    return new JThrowStmt(Jimple.cloneIfNecessary(getOp()));
  }

  @Override
  public String toString() {
    return Jimple.THROW + " " + opBox.getValue().toString();
  }

  @Override
  public void toString(UnitPrinter up) {
    up.literal(Jimple.THROW + " ");
    opBox.toString(up);
  }

  @Override
  public void apply(Switch sw) {
    ((StmtSwitch) sw).caseThrowStmt(this);
  }

  @Override
  public void convertToBaf(JimpleToBafContext context, List<Unit> out) {<FILL_FUNCTION_BODY>}

  @Override
  public boolean fallsThrough() {
    return false;
  }

  @Override
  public boolean branches() {
    return false;
  }
}

    ((ConvertToBaf) getOp()).convertToBaf(context, out);

    Unit u = Baf.v().newThrowInst();
    u.addAllTagsOf(this);
    out.add(u);
  
<methods>public final soot.Value getOp() ,public final soot.ValueBox getOpBox() ,public final List<soot.ValueBox> getUseBoxes() ,public final void setOp(soot.Value) <variables>protected final non-sealed soot.ValueBox opBox