package com.google.code.joto.ast.beanstmt; import com.google.code.joto.ast.beanstmt.BeanAST.AssignExpr; import com.google.code.joto.ast.beanstmt.BeanAST.BlockStmt; import com.google.code.joto.ast.beanstmt.BeanAST.ClassExpr; import com.google.code.joto.ast.beanstmt.BeanAST.ExprStmt; import com.google.code.joto.ast.beanstmt.BeanAST.FieldExpr; import com.google.code.joto.ast.beanstmt.BeanAST.IndexedArrayExpr; import com.google.code.joto.ast.beanstmt.BeanAST.LiteralExpr; import com.google.code.joto.ast.beanstmt.BeanAST.MethodApplyExpr; import com.google.code.joto.ast.beanstmt.BeanAST.NewArrayExpr; import com.google.code.joto.ast.beanstmt.BeanAST.NewObjectExpr; import com.google.code.joto.ast.beanstmt.BeanAST.VarDeclStmt; import com.google.code.joto.ast.beanstmt.BeanAST.SimpleNameExpr; /** * Visitor design pattern, for BeanAST class hierarchy * * this visitor variant use argument, and return value.. See also BeanInitVisitor without arg/return. */ public interface BeanASTVisitor2<R,A> { R caseExprStmt(ExprStmt p, A arg); R caseAssign(AssignExpr p, A arg); R caseMethodApplyExpr(MethodApplyExpr p, A arg); R caseLitteralExpr(LiteralExpr p, A arg); R caseNewObject(NewObjectExpr p, A arg); R caseNewArray(NewArrayExpr p, A arg); R caseIndexedArray(IndexedArrayExpr p, A arg); R caseClassExpr(ClassExpr p, A arg); R caseFieldExpr(FieldExpr p, A arg); R caseSimpleName(SimpleNameExpr p, A arg); R caseVarDecl(VarDeclStmt p, A arg); R caseBlock(BlockStmt p, A arg); }