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
public class MethodNode extends AnnotatedNode implements org.objectweb.asm.Opcodes
Represents a method declaration.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringSCRIPT_BODY_METHOD_KEY-
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, V21, V9
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedMethodNode()MethodNode(java.lang.String name, int modifiers, ClassNode returnType, Parameter[] parameters, ClassNode[] exceptions, Statement code)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StatementgetCode()ClassNode[]getExceptions()StatementgetFirstStatement()GenericsType[]getGenericsTypes()intgetModifiers()java.lang.StringgetName()Parameter[]getParameters()ClassNodegetReturnType()java.lang.StringgetText()Provides a nicely formatted string of the method definition.java.lang.StringgetTypeDescriptor()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.VariableScopegetVariableScope()booleanhasAnnotationDefault()booleanhasDefaultValue()booleanisAbstract()booleanisDefault()booleanisDynamicReturnType()booleanisFinal()booleanisPackageScope()booleanisPrivate()booleanisProtected()booleanisPublic()booleanisScriptBody()booleanisStatic()booleanisStaticConstructor()booleanisSyntheticPublic()Indicates that this method has been "promoted" to public by Groovy when in fact there was no public modifier explicitly in the source code.booleanisVoidMethod()voidsetAnnotationDefault(boolean b)voidsetCode(Statement code)voidsetGenericsTypes(GenericsType[] genericsTypes)voidsetIsScriptBody()Set the metadata flag for this method to indicate that it is a script body implementation.voidsetModifiers(int modifiers)voidsetParameters(Parameter[] parameters)voidsetReturnType(ClassNode returnType)voidsetSyntheticPublic(boolean syntheticPublic)voidsetVariableScope(VariableScope variableScope)java.lang.StringtoString()-
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, getMetaDataMap, getNodeMetaData, getNodeMetaData, putNodeMetaData, removeNodeMetaData, setColumnNumber, setLastColumnNumber, setLastLineNumber, setLineNumber, setNodeMetaData, setSourcePosition, visit
-
-
-
-
Field Detail
-
SCRIPT_BODY_METHOD_KEY
public static final java.lang.String SCRIPT_BODY_METHOD_KEY
- See Also:
- Constant Field Values
-
-
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, we use the format of a Java declaration without parameter names or generics.- Returns:
- the type descriptor
-
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()
-
setParameters
public void setParameters(Parameter[] parameters)
-
getReturnType
public ClassNode getReturnType()
-
getVariableScope
public VariableScope getVariableScope()
-
setVariableScope
public void setVariableScope(VariableScope variableScope)
-
isDynamicReturnType
public boolean isDynamicReturnType()
-
isAbstract
public boolean isAbstract()
-
isDefault
public boolean isDefault()
-
isStatic
public boolean isStatic()
-
isPublic
public boolean isPublic()
-
isPrivate
public boolean isPrivate()
-
isFinal
public boolean isFinal()
-
isProtected
public boolean isProtected()
-
isPackageScope
public boolean isPackageScope()
-
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:
ModuleNode.createStatementsClass()
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
setReturnType
public void setReturnType(ClassNode returnType)
-
getExceptions
public ClassNode[] getExceptions()
-
getFirstStatement
public Statement getFirstStatement()
-
getGenericsTypes
public GenericsType[] getGenericsTypes()
-
setGenericsTypes
public void setGenericsTypes(GenericsType[] genericsTypes)
-
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)
-
-