1 /* 2 * Javassist, a Java-bytecode translator toolkit. 3 * Copyright (C) 1999-2007 Shigeru Chiba. All Rights Reserved. 4 * 5 * The contents of this file are subject to the Mozilla Public License Version 6 * 1.1 (the "License"); you may not use this file except in compliance with 7 * the License. Alternatively, the contents of this file may be used under 8 * the terms of the GNU Lesser General Public License Version 2.1 or later. 9 * 10 * Software distributed under the License is distributed on an "AS IS" basis, 11 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 12 * for the specific language governing rights and limitations under the 13 * License. 14 */ 15 16 package javassist.compiler.ast; 17 18 import javassist.compiler.CompileError; 19 import javassist.compiler.TokenId; 20 import javassist.compiler.MemberResolver; 21 22 /** 23 * Method call expression. 24 */ 25 public class CallExpr extends Expr { 26 private MemberResolver.Method method; // cached result of lookupMethod() 27 CallExpr(ASTree _head, ASTList _tail)28 private CallExpr(ASTree _head, ASTList _tail) { 29 super(TokenId.CALL, _head, _tail); 30 method = null; 31 } 32 setMethod(MemberResolver.Method m)33 public void setMethod(MemberResolver.Method m) { 34 method = m; 35 } 36 getMethod()37 public MemberResolver.Method getMethod() { 38 return method; 39 } 40 makeCall(ASTree target, ASTree args)41 public static CallExpr makeCall(ASTree target, ASTree args) { 42 return new CallExpr(target, new ASTList(args)); 43 } 44 accept(Visitor v)45 public void accept(Visitor v) throws CompileError { v.atCallExpr(this); } 46 } 47