Package org.codehaus.groovy.ast
Class MethodNode
java.lang.Object
org.codehaus.groovy.ast.ASTNode
org.codehaus.groovy.ast.AnnotatedNode
org.codehaus.groovy.ast.MethodNode
- All Implemented Interfaces:
org.objectweb.asm.Opcodes
- Direct Known Subclasses:
ConstructorNode
,ExtensionMethodNode
Represents a method declaration
- Author:
- James Strachan, Hamlet D'Arcy
-
Field Summary
Fields inherited from interface org.objectweb.asm.Opcodes
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_RECORD, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM10_EXPERIMENTAL, ASM4, ASM5, ASM6, ASM7, ASM8, ASM9, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, 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, INTEGER, INVOKEDYNAMIC, 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, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SOURCE_DEPRECATED, SOURCE_MASK, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V_PREVIEW, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V9
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptiongetCode()
int
getName()
getText()
Provides a nicely formatted string of the method definition.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.boolean
boolean
boolean
boolean
boolean
isFinal()
boolean
boolean
boolean
isPublic()
boolean
boolean
isStatic()
boolean
boolean
Indicates that this method has been "promoted" to public by Groovy when in fact there was no public modifier explicitly in the source code.boolean
void
setAnnotationDefault
(boolean b) void
void
setGenericsTypes
(GenericsType[] genericsTypes) void
Set the metadata flag for this method to indicate that it is a script body implementation.void
setModifiers
(int modifiers) void
setParameters
(Parameter[] parameters) void
setReturnType
(ClassNode returnType) void
setSyntheticPublic
(boolean syntheticPublic) void
setVariableScope
(VariableScope variableScope) toString()
Methods inherited from class org.codehaus.groovy.ast.AnnotatedNode
addAnnotation, addAnnotations, getAnnotations, getAnnotations, getDeclaringClass, hasNoRealSourcePosition, isSynthetic, setDeclaringClass, setHasNoRealSourcePosition, setSynthetic
Methods inherited from class org.codehaus.groovy.ast.ASTNode
copyNodeMetaData, getColumnNumber, getLastColumnNumber, getLastLineNumber, getLineNumber, getNodeMetaData, getNodeMetaData, putNodeMetaData, removeNodeMetaData, setColumnNumber, setLastColumnNumber, setLastLineNumber, setLineNumber, setNodeMetaData, setSourcePosition, visit
-
Field Details
-
SCRIPT_BODY_METHOD_KEY
- See Also:
-
-
Constructor Details
-
MethodNode
-
-
Method Details
-
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.- Returns:
- the type descriptor
-
isVoidMethod
public boolean isVoidMethod() -
getCode
-
setCode
-
getModifiers
public int getModifiers() -
setModifiers
public void setModifiers(int modifiers) -
getName
-
getParameters
-
setParameters
-
getReturnType
-
getVariableScope
-
setVariableScope
-
isDynamicReturnType
public boolean isDynamicReturnType() -
isAbstract
public boolean isAbstract() -
isStatic
public boolean isStatic() -
isPublic
public boolean isPublic() -
isPrivate
public boolean isPrivate() -
isFinal
public boolean isFinal() -
isProtected
public boolean isProtected() -
hasDefaultValue
public boolean hasDefaultValue() -
isScriptBody
public boolean isScriptBody()- Returns:
- true if this method is the run method from a script
-
setIsScriptBody
public void setIsScriptBody()Set the metadata flag for this method to indicate that it is a script body implementation.- See Also:
-
toString
-
setReturnType
-
getExceptions
-
getFirstStatement
-
getGenericsTypes
-
setGenericsTypes
-
setAnnotationDefault
public void setAnnotationDefault(boolean b) -
hasAnnotationDefault
public boolean hasAnnotationDefault() -
isStaticConstructor
public boolean isStaticConstructor() -
isSyntheticPublic
public boolean isSyntheticPublic()Indicates that this method has been "promoted" to public by Groovy when in fact there was no public modifier explicitly in the source code. I.e. it remembers that it has applied Groovy's "public methods by default" rule. This property is typically only of interest to AST transform writers.- Returns:
- true if this class is public but had no explicit public modifier
-
setSyntheticPublic
public void setSyntheticPublic(boolean syntheticPublic) -
getText
Provides a nicely formatted string of the method definition. For simplicity, generic types on some of the elements are not displayed.
-