}
@Override
public HoldingContainer renderEnd(CodeGenerator<?> g, HoldingContainer[] inputVariables, JVar[] workspaceJVars) {
HoldingContainer out = g.declare(returnValue.type, false);
JBlock sub = new JBlock();
g.getEvalBlock().add(sub);
JVar internalOutput = sub.decl(JMod.FINAL, g.getHolderType(returnValue.type), returnValue.name, JExpr._new(g.getHolderType(returnValue.type)));
addProtectedBlock(g, sub, output, null, workspaceJVars);
sub.assign(out.getHolder(), internalOutput);
generateBody(g, BlockType.RESET, reset, workspaceJVars);
generateBody(g, BlockType.CLEANUP, cleanup, workspaceJVars);
return out;
}