final BlockStatement body = new BlockStatement();
return new BlockBuilderImpl<WhileBuilder>(body, new BuildCallback<WhileBuilder>() {
@Override
public WhileBuilder callback(Statement statement) {
return new WhileBuilder() {
@Override
public StatementEnd while_(final BooleanExpression condition) {
appendCallElement(new ConditionalBlockCallElement(new DoWhileLoop(condition, body)));
return LoopBuilderImpl.this;