org.codehaus.groovy.ast
Class ClassNode

java.lang.Object
  |
  +--org.codehaus.groovy.ast.ASTNode
        |
        +--org.codehaus.groovy.ast.MetadataNode
              |
              +--org.codehaus.groovy.ast.ClassNode
All Implemented Interfaces:
org.objectweb.asm.Constants
Direct Known Subclasses:
InnerClassNode, MixinNode

public class ClassNode
extends MetadataNode
implements org.objectweb.asm.Constants

Represents a class declaration

Version:
$Revision: 1.20 $
Author:
James Strachan

Field Summary
 
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_DEPRECATED, 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_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
 
Constructor Summary
ClassNode(String name, int modifiers, String superClass)
           
ClassNode(String name, int modifiers, String superClass, String[] interfaces, org.codehaus.groovy.ast.MixinNode[] mixins)
           
 
Method Summary
 void addConstructor(org.codehaus.groovy.ast.ConstructorNode node)
           
 org.codehaus.groovy.ast.ConstructorNode addConstructor(int modifiers, org.codehaus.groovy.ast.Parameter[] parameters, org.codehaus.groovy.ast.stmt.Statement code)
           
 void addField(org.codehaus.groovy.ast.FieldNode node)
           
 org.codehaus.groovy.ast.FieldNode addField(String name, int modifiers, String type, org.codehaus.groovy.ast.expr.Expression initialValue)
           
 void addInterface(String name)
           
 void addMethod(org.codehaus.groovy.ast.MethodNode node)
           
 org.codehaus.groovy.ast.MethodNode addMethod(String name, int modifiers, String returnType, org.codehaus.groovy.ast.Parameter[] parameters, org.codehaus.groovy.ast.stmt.Statement code)
           
 void addMixin(org.codehaus.groovy.ast.MixinNode mixin)
           
 void addProperty(org.codehaus.groovy.ast.PropertyNode node)
           
 org.codehaus.groovy.ast.PropertyNode addProperty(String name, int modifiers, String type, org.codehaus.groovy.ast.expr.Expression initialValueExpression, org.codehaus.groovy.ast.stmt.Statement getterBlock, org.codehaus.groovy.ast.stmt.Statement setterBlock)
           
 void addStaticInitializerStatements(List staticStatements)
           
 String getClassNameForExpression(String identifier)
           
 List getConstructors()
           
 org.codehaus.groovy.ast.FieldNode getField(String name)
           
 List getFields()
           
 org.codehaus.groovy.ast.MethodNode getGetterMethod(String getterName)
           
 String[] getInterfaces()
           
 org.codehaus.groovy.ast.MethodNode getMethod(String name)
           
 List getMethods()
           
 org.codehaus.groovy.ast.MixinNode[] getMixins()
           
 int getModifiers()
           
 org.codehaus.groovy.ast.ModuleNode getModule()
           
 String getName()
           
 String getNameWithoutPackage()
           
 org.codehaus.groovy.ast.ClassNode getOuterClass()
          Helper method to avoid casting to inner class
 org.codehaus.groovy.ast.FieldNode getOuterField(String name)
           
 String getPackageName()
           
 List getProperties()
           
 org.codehaus.groovy.ast.MethodNode getSetterMethod(String getterName)
           
 String getSuperClass()
           
 boolean isScriptClass()
           
 void setModule(org.codehaus.groovy.ast.ModuleNode module)
           
 void visitContents(org.codehaus.groovy.ast.GroovyClassVisitor visitor)
           
 
Methods inherited from class org.codehaus.groovy.ast.MetadataNode
addAttribute, getAttributes, getAttributes, setAttribute
 
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, toString, wait, wait, wait
 

Constructor Detail

ClassNode

public ClassNode(String name,
                 int modifiers,
                 String superClass)
Parameters:
name - is the full name of the class
modifiers - the modifiers,
superClass - the base class name - use "java.lang.Object" if no direct base class
See Also:
Constants

ClassNode

public ClassNode(String name,
                 int modifiers,
                 String superClass,
                 String[] interfaces,
                 org.codehaus.groovy.ast.MixinNode[] mixins)
Parameters:
name - is the full name of the class
modifiers - the modifiers,
superClass - the base class name - use "java.lang.Object" if no direct base class
See Also:
Constants
Method Detail

getSuperClass

public String getSuperClass()

getFields

public List getFields()

getInterfaces

public String[] getInterfaces()

getMixins

public org.codehaus.groovy.ast.MixinNode[] getMixins()

getMethods

public List getMethods()

getName

public String getName()

getModifiers

public int getModifiers()

getProperties

public List getProperties()

getConstructors

public List getConstructors()

getModule

public org.codehaus.groovy.ast.ModuleNode getModule()

setModule

public void setModule(org.codehaus.groovy.ast.ModuleNode module)

addField

public void addField(org.codehaus.groovy.ast.FieldNode node)

addProperty

public void addProperty(org.codehaus.groovy.ast.PropertyNode node)

addProperty

public org.codehaus.groovy.ast.PropertyNode addProperty(String name,
                                                        int modifiers,
                                                        String type,
                                                        org.codehaus.groovy.ast.expr.Expression initialValueExpression,
                                                        org.codehaus.groovy.ast.stmt.Statement getterBlock,
                                                        org.codehaus.groovy.ast.stmt.Statement setterBlock)

addConstructor

public void addConstructor(org.codehaus.groovy.ast.ConstructorNode node)

addConstructor

public org.codehaus.groovy.ast.ConstructorNode addConstructor(int modifiers,
                                                              org.codehaus.groovy.ast.Parameter[] parameters,
                                                              org.codehaus.groovy.ast.stmt.Statement code)

addMethod

public void addMethod(org.codehaus.groovy.ast.MethodNode node)

addMethod

public org.codehaus.groovy.ast.MethodNode addMethod(String name,
                                                    int modifiers,
                                                    String returnType,
                                                    org.codehaus.groovy.ast.Parameter[] parameters,
                                                    org.codehaus.groovy.ast.stmt.Statement code)

addField

public org.codehaus.groovy.ast.FieldNode addField(String name,
                                                  int modifiers,
                                                  String type,
                                                  org.codehaus.groovy.ast.expr.Expression initialValue)

addInterface

public void addInterface(String name)

addMixin

public void addMixin(org.codehaus.groovy.ast.MixinNode mixin)

getField

public org.codehaus.groovy.ast.FieldNode getField(String name)

getOuterField

public org.codehaus.groovy.ast.FieldNode getOuterField(String name)
Returns:
the field node on the outer class or null if this is not an inner class

getOuterClass

public org.codehaus.groovy.ast.ClassNode getOuterClass()
Helper method to avoid casting to inner class

Returns:

addStaticInitializerStatements

public void addStaticInitializerStatements(List staticStatements)

getMethod

public org.codehaus.groovy.ast.MethodNode getMethod(String name)

getClassNameForExpression

public String getClassNameForExpression(String identifier)
Returns:
the name of the class for the given identifier if it is a class otherwise return null

getPackageName

public String getPackageName()
Returns:
the package name of this class

getNameWithoutPackage

public String getNameWithoutPackage()

visitContents

public void visitContents(org.codehaus.groovy.ast.GroovyClassVisitor visitor)

isScriptClass

public boolean isScriptClass()

getGetterMethod

public org.codehaus.groovy.ast.MethodNode getGetterMethod(String getterName)

getSetterMethod

public org.codehaus.groovy.ast.MethodNode getSetterMethod(String getterName)


Copyright © 2003 The Codehaus. All Rights Reserved.