Home | History | Annotate | Download | only in ast
      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 
     20 public class MethodDecl extends ASTList {
     21     public static final String initName = "<init>";
     22 
     23     public MethodDecl(ASTree _head, ASTList _tail) {
     24         super(_head, _tail);
     25     }
     26 
     27     public boolean isConstructor() {
     28         Symbol sym = getReturn().getVariable();
     29         return sym != null && initName.equals(sym.get());
     30     }
     31 
     32     public ASTList getModifiers() { return (ASTList)getLeft(); }
     33 
     34     public Declarator getReturn() { return (Declarator)tail().head(); }
     35 
     36     public ASTList getParams() { return (ASTList)sublist(2).head(); }
     37 
     38     public ASTList getThrows() { return (ASTList)sublist(3).head(); }
     39 
     40     public Stmnt getBody() { return (Stmnt)sublist(4).head(); }
     41 
     42     public void accept(Visitor v) throws CompileError {
     43         v.atMethodDecl(this);
     44     }
     45 }
     46