class BIdentityInst extends AbstractInst implements IdentityInst {

  ValueBox leftBox;
  ValueBox rightBox;
  List<ValueBox> defBoxes;

  protected BIdentityInst(ValueBox localBox, ValueBox identityValueBox) {
    this.leftBox = localBox;
    this.rightBox = identityValueBox;
    this.defBoxes = Collections.singletonList(localBox);
  }

  public BIdentityInst(Value local, Value identityValue) {
    this(Baf.v().newLocalBox(local), Baf.v().newIdentityRefBox(identityValue));
  }

  @Override
  public Object clone() {
    return new BIdentityInst(getLeftOp(), getRightOp());
  }

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

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

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

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

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

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

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

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

  @Override
  public List<ValueBox> getDefBoxes() {
    return defBoxes;
  }

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

  @Override
  public String toString() {
    return leftBox.getValue().toString() + " := " + rightBox.getValue().toString();
  }

  @Override
  public void toString(UnitPrinter up) {
    leftBox.toString(up);
    up.literal(" := ");
    rightBox.toString(up);
  }

  @Override
  final public String getName() {
    return ":=";
  }

  @Override
  public void setLeftOp(Value local) {
    leftBox.setValue(local);
  }

  @Override
  public void setRightOp(Value identityRef) {
    rightBox.setValue(identityRef);
  }

  @Override
  public void apply(Switch sw) {
    ((InstSwitch) sw).caseIdentityInst(this);
  }
}

    List<ValueBox> list = new ArrayList<ValueBox>();

    list.addAll(rightBox.getValue().getUseBoxes());
    list.add(rightBox);
    list.addAll(leftBox.getValue().getUseBoxes());

    return list;
  
<methods>public non-sealed void <init>() ,public boolean branches() ,public java.lang.Object clone() ,public boolean containsArrayRef() ,public boolean containsFieldRef() ,public boolean containsInvokeExpr() ,public boolean containsNewExpr() ,public boolean fallsThrough() ,public int getInCount() ,public int getInMachineCount() ,public abstract java.lang.String getName() ,public int getNetCount() ,public int getNetMachineCount() ,public int getOutCount() ,public int getOutMachineCount() ,public java.lang.String toString() ,public void toString(soot.UnitPrinter) <variables>