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:
GroovydocHolder<AnnotatedNode>,NodeMetaDataHandler,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 inherited from interface groovy.lang.groovydoc.GroovydocHolder
DOC_COMMENTFields 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, V22, V23, V24, 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
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 hasDefaultValue)voidsetCode(Statement code)voidsetGenericsTypes(GenericsType[] genericsTypes)voidsetIsScriptBody()Sets the flag for this method to indicate 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, getGroovydoc, getInstance, hasNoRealSourcePosition, isSynthetic, setDeclaringClass, setHasNoRealSourcePosition, setSyntheticMethods inherited from class org.codehaus.groovy.ast.ASTNode
copyNodeMetaData, getColumnNumber, getLastColumnNumber, getLastLineNumber, getLineNumber, getMetaDataMap, setColumnNumber, setLastColumnNumber, setLastLineNumber, setLineNumber, setMetaDataMap, setSourcePosition, visitMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.codehaus.groovy.ast.NodeMetaDataHandler
copyNodeMetaData, getNodeMetaData, getNodeMetaData, getNodeMetaData, putNodeMetaData, removeNodeMetaData, setNodeMetaData
-
Constructor Details
-
MethodNode
protected MethodNode() -
MethodNode
-
-
Method Details
-
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. -
getCode
-
setCode
-
getModifiers
public int getModifiers() -
setModifiers
public void setModifiers(int modifiers) -
getName
public java.lang.String getName() -
getParameters
-
setParameters
-
hasDefaultValue
public boolean hasDefaultValue()- Returns:
trueif any parameter has a default value
-
getReturnType
-
setReturnType
-
isDynamicReturnType
public boolean isDynamicReturnType() -
isVoidMethod
public boolean isVoidMethod() -
getVariableScope
-
setVariableScope
-
isAbstract
public boolean isAbstract() -
isDefault
public boolean isDefault() -
isFinal
public boolean isFinal() -
isStatic
public boolean isStatic() -
isPublic
public boolean isPublic() -
isPrivate
public boolean isPrivate() -
isProtected
public boolean isProtected() -
isPackageScope
public boolean isPackageScope() -
getExceptions
-
getFirstStatement
-
getGenericsTypes
-
setGenericsTypes
-
hasAnnotationDefault
public boolean hasAnnotationDefault()- Returns:
trueif annotation method has a default value
-
setAnnotationDefault
public void setAnnotationDefault(boolean hasDefaultValue) -
isScriptBody
public boolean isScriptBody()- Returns:
trueif this method is the run method from a script
-
setIsScriptBody
public void setIsScriptBody()Sets the flag for this method to indicate it is a script body implementation.- See Also:
ModuleNode.createStatementsClass()
-
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:
trueif this class is public but had no explicit public modifier
-
setSyntheticPublic
public void setSyntheticPublic(boolean syntheticPublic) -
getText
public java.lang.String getText()Provides a nicely formatted string of the method definition. For simplicity, generic types on some of the elements are not displayed. -
toString
public java.lang.String toString()- Overrides:
toStringin classjava.lang.Object
-