org.codehaus.groovy.ast
Class MethodNode

java.lang.Object
  extended byorg.codehaus.groovy.ast.ASTNode
      extended byorg.codehaus.groovy.ast.AnnotatedNode
          extended byorg.codehaus.groovy.ast.MethodNode
All Implemented Interfaces:
org.objectweb.asm.Constants

public class MethodNode
extends AnnotatedNode
implements org.objectweb.asm.Constants

Represents a method declaration

Version:
$Revision: 1.14 $
Author:
James Strachan

Field Summary
private  Statement code
           
(package private)  ClassNode declaringClass
           
private  boolean dynamicReturnType
           
private  int modifiers
           
private  java.lang.String name
           
private  Parameter[] parameters
           
private  java.lang.String returnType
           
private  VariableScope variableScope
           
 
Fields inherited from class org.codehaus.groovy.ast.AnnotatedNode
 
Fields inherited from class org.codehaus.groovy.ast.ASTNode
EMPTY_STRING_ARRAY
 
Fields inherited from interface org.objectweb.asm.Constants
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, V1_1, V1_2, V1_3, V1_4, V1_5
 
Constructor Summary
MethodNode(java.lang.String name, int modifiers, java.lang.String returnType, Parameter[] parameters, Statement code)
           
 
Method Summary
static java.lang.String ensureJavaTypeNameSyntax(java.lang.String typename)
           
 Statement getCode()
           
 ClassNode getDeclaringClass()
           
 int getModifiers()
           
 java.lang.String getName()
           
 Parameter[] getParameters()
           
 java.lang.String getReturnType()
           
 java.lang.String getTypeDescriptor()
          The type descriptor for a method node is a string containing the name of the method, its return type, and its parameter types in a canonical form.
 VariableScope getVariableScope()
           
 boolean isAbstract()
           
 boolean isDynamicReturnType()
           
 boolean isStatic()
           
 boolean isVoidMethod()
           
 void setCode(Statement code)
           
 void setDeclaringClass(ClassNode declaringClass)
           
 void setModifiers(int modifiers)
           
 void setReturnType(java.lang.String returnType)
           
 void setVariableScope(VariableScope variableScope)
           
 java.lang.String toString()
           
 
Methods inherited from class org.codehaus.groovy.ast.AnnotatedNode
addAnnotation, addAnnotations, getAnnotations, getAnnotations, isSynthetic, setSynthetic
 
Methods inherited from class org.codehaus.groovy.ast.ASTNode
getColumnNumber, getLineNumber, getText, setColumnNumber, setCSTNode, setLineNumber, visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

name

private java.lang.String name

modifiers

private int modifiers

returnType

private java.lang.String returnType

parameters

private Parameter[] parameters

code

private Statement code

dynamicReturnType

private boolean dynamicReturnType

variableScope

private VariableScope variableScope

declaringClass

ClassNode declaringClass
Constructor Detail

MethodNode

public MethodNode(java.lang.String name,
                  int modifiers,
                  java.lang.String returnType,
                  Parameter[] parameters,
                  Statement code)
Method Detail

getTypeDescriptor

public java.lang.String getTypeDescriptor()
The type descriptor for a method node is a string containing the name of the method, its return type, and its parameter types in a canonical form. For simplicity, I'm using the format of a Java declaration without parameter names, and with $dynamic as the type for any dynamically typed values.

Returns:

ensureJavaTypeNameSyntax

public static java.lang.String ensureJavaTypeNameSyntax(java.lang.String typename)

isVoidMethod

public boolean isVoidMethod()

getCode

public Statement getCode()

setCode

public void setCode(Statement code)

getModifiers

public int getModifiers()

setModifiers

public void setModifiers(int modifiers)

getName

public java.lang.String getName()

getParameters

public Parameter[] getParameters()

getReturnType

public java.lang.String getReturnType()

getVariableScope

public VariableScope getVariableScope()

setVariableScope

public void setVariableScope(VariableScope variableScope)

isDynamicReturnType

public boolean isDynamicReturnType()

getDeclaringClass

public ClassNode getDeclaringClass()

isAbstract

public boolean isAbstract()

isStatic

public boolean isStatic()

toString

public java.lang.String toString()

setReturnType

public void setReturnType(java.lang.String returnType)

setDeclaringClass

public void setDeclaringClass(ClassNode declaringClass)
Parameters:
declaringClass - The declaringClass to set.


Copyright © 2003-2005 The Codehaus. All Rights Reserved.