Integer pos = trackInteger(expr.getArg(0));
Variable rvar = valueOf(expr.getArgBox(1), arguments.get(1), 10, target.getParameterType(0), factory);
if (pos != null && pos.intValue() == 0) {
factory.addStatement(new StringBufferPrepend(callee, rvar));
} else {
factory.addStatement(new StringBufferBinaryOp(callee, new Insert(), rvar));
}
return callee;
}
// StringBuffer.delete(int,int)
else if (methodName.equals("delete") && numArgs == 2) {
UnaryOperation op = new Delete();
factory.addStatement(new StringBufferUnaryOp(callee, op));
return callee;
}
// StringBuffer.deleteCharAt(int)
else if (methodName.equals("deleteCharAt") && numArgs == 1) {
UnaryOperation op = new DeleteCharAt();
factory.addStatement(new StringBufferUnaryOp(callee, op));
return callee;
}
// StringBuffer.replace(int start, int end, String replacement)
else if (methodName.equals("replace") && numArgs == 3) {
BinaryOperation op = new Replace5();
Variable rvar = valueOf(expr.getArgBox(2), arguments.get(2), 10, target.getParameterType(2), factory);
factory.addStatement(new StringBufferBinaryOp(callee, op, rvar));
return callee;
}
// StringBuffer.reverse()
else if (methodName.equals("reverse") && numArgs == 0) {
UnaryOperation op = new Reverse();