class JReturnStmt extends AbstractOpStmt implements ReturnStmt {

  public JReturnStmt(Value returnValue) {
    this(Jimple.v().newImmediateBox(returnValue));
  }

  protected JReturnStmt(ValueBox returnValueBox) {
    super(returnValueBox);
  }

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

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

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

  @Override
  public void apply(Switch sw) {
    ((StmtSwitch) sw).caseReturnStmt(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().newReturnInst(getOp().getType());
    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