1 package com.github.javaparser.ast.nodeTypes; 2 3 import java.util.List; 4 5 import com.github.javaparser.ast.Node; 6 import com.github.javaparser.ast.expr.Expression; 7 import com.github.javaparser.ast.expr.NameExpr; 8 import com.github.javaparser.ast.stmt.ExpressionStmt; 9 import com.github.javaparser.ast.stmt.Statement; 10 11 public interface NodeWithStatements<T> { 12 public List<Statement> getStmts(); 13 14 public T setStmts(final List<Statement> stmts); 15 16 @SuppressWarnings("unchecked") 17 public default T addStatement(Statement statement) { 18 getStmts().add(statement); 19 statement.setParentNode((Node) this); 20 return (T) this; 21 } 22 23 @SuppressWarnings("unchecked") 24 public default T addStatement(int index, final Statement statement) { 25 getStmts().add(index, statement); 26 statement.setParentNode((Node) this); 27 return (T) this; 28 } 29 30 public default T addStatement(Expression expr) { 31 ExpressionStmt statement = new ExpressionStmt(expr); 32 expr.setParentNode(statement); 33 return addStatement(statement); 34 } 35 36 public default T addStatement(String statement) { 37 return addStatement(new NameExpr(statement)); 38 } 39 40 public default T addStatement(int index, final Expression expr) { 41 Statement stmt = new ExpressionStmt(expr); 42 expr.setParentNode(stmt); 43 return addStatement(index, stmt); 44 } 45 46 } 47