class AbstractDefinitionStmt extends AbstractStmt implements DefinitionStmt {

  protected final ValueBox leftBox;
  protected final ValueBox rightBox;

  protected AbstractDefinitionStmt(ValueBox leftBox, ValueBox rightBox) {
    this.leftBox = leftBox;
    this.rightBox = rightBox;
  }

  @Override
  public final Value getLeftOp() {
    return leftBox.getValue();
  }

  @Override
  public final Value getRightOp() {
    return rightBox.getValue();
  }

  @Override
  public final ValueBox getLeftOpBox() {
    return leftBox;
  }

  @Override
  public final ValueBox getRightOpBox() {
    return rightBox;
  }

  @Override
  public final List<ValueBox> getDefBoxes() {
    return Collections.singletonList(leftBox);
  }

  @Override
  public List<ValueBox> getUseBoxes() {<FILL_FUNCTION_BODY>}

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

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

    List<ValueBox> list = new ArrayList<ValueBox>();
    list.addAll(getLeftOp().getUseBoxes());
    list.add(rightBox);
    list.addAll(getRightOp().getUseBoxes());
    return list;
  
<methods>public non-sealed void <init>() ,public boolean containsArrayRef() ,public boolean containsFieldRef() ,public boolean containsInvokeExpr() ,public void convertToBaf(soot.jimple.JimpleToBafContext, List<soot.Unit>) ,public soot.jimple.ArrayRef getArrayRef() ,public soot.ValueBox getArrayRefBox() ,public soot.jimple.FieldRef getFieldRef() ,public soot.ValueBox getFieldRefBox() ,public soot.jimple.InvokeExpr getInvokeExpr() ,public soot.ValueBox getInvokeExprBox() <variables>