public ForStatementTreeImpl newStandardForStatement( AstNode forTokenAstNode, AstNode openParenTokenAstNode, Optional<StatementExpressionListTreeImpl> forInit, AstNode forInitSemicolonTokenAstNode, Optional<ExpressionTree> expression, AstNode expressionSemicolonTokenAstNode, Optional<StatementExpressionListTreeImpl> forUpdate, AstNode forUpdateSemicolonTokenAstNode, StatementTree statement) { StatementExpressionListTreeImpl forInit2 = forInit.isPresent() ? forInit.get() : new StatementExpressionListTreeImpl(ImmutableList.<StatementTree>of()); StatementExpressionListTreeImpl forUpdate2 = forUpdate.isPresent() ? forUpdate.get() : new StatementExpressionListTreeImpl(ImmutableList.<StatementTree>of()); ForStatementTreeImpl result = new ForStatementTreeImpl( forInit2, expression.isPresent() ? expression.get() : null, forUpdate2, statement); List<AstNode> children = Lists.newArrayList(); children.add(forTokenAstNode); children.add(openParenTokenAstNode); children.add(forInit2); children.add(forInitSemicolonTokenAstNode); if (expression.isPresent()) { children.add((AstNode) expression.get()); } children.add(expressionSemicolonTokenAstNode); children.add(forUpdate2); children.add(forUpdateSemicolonTokenAstNode); children.add((AstNode) statement); result.prependChildren(children); return result; }