|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.codehaus.groovy.ast.ASTNode
org.codehaus.groovy.ast.MetadataNode
org.codehaus.groovy.ast.ClassNode
Represents a class declaration
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_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 |
Constructor Summary | |
ClassNode(java.lang.String name,
int modifiers,
java.lang.String superClass)
|
|
ClassNode(java.lang.String name,
int modifiers,
java.lang.String superClass,
java.lang.String[] interfaces,
MixinNode[] mixins)
|
Method Summary | |
void |
addConstructor(ConstructorNode node)
|
ConstructorNode |
addConstructor(int modifiers,
Parameter[] parameters,
Statement code)
|
void |
addField(FieldNode node)
|
FieldNode |
addField(java.lang.String name,
int modifiers,
java.lang.String type,
Expression initialValue)
|
void |
addInterface(java.lang.String name)
|
void |
addMethod(MethodNode node)
|
MethodNode |
addMethod(java.lang.String name,
int modifiers,
java.lang.String returnType,
Parameter[] parameters,
Statement code)
IF a method with the given name and parameters is already defined then it is returned otherwise the given method is added to this node. |
void |
addMixin(MixinNode mixin)
|
void |
addProperty(PropertyNode node)
|
PropertyNode |
addProperty(java.lang.String name,
int modifiers,
java.lang.String type,
Expression initialValueExpression,
Statement getterBlock,
Statement setterBlock)
|
void |
addStaticInitializerStatements(java.util.List staticStatements)
|
MethodNode |
addSyntheticMethod(java.lang.String name,
int modifiers,
java.lang.String returnType,
Parameter[] parameters,
Statement code)
Adds a synthetic method as part of the compilation process |
protected ClassNode |
createClassNode(java.lang.Class theClass)
|
boolean |
declaresInterface(java.lang.String name)
|
ClassNode |
findClassNode(java.lang.String type)
Attempts to lookup the fully qualified class name in the compile unit or classpath |
java.lang.String |
getClassNameForExpression(java.lang.String identifier)
|
CompileUnit |
getCompileUnit()
|
java.util.List |
getConstructors()
|
FieldNode |
getField(java.lang.String name)
|
java.util.List |
getFields()
|
MethodNode |
getGetterMethod(java.lang.String getterName)
|
java.lang.String[] |
getInterfaces()
|
MethodNode |
getMethod(java.lang.String name)
|
MethodNode |
getMethod(java.lang.String name,
Parameter[] parameters)
|
java.util.List |
getMethods()
|
MixinNode[] |
getMixins()
|
int |
getModifiers()
|
ModuleNode |
getModule()
|
java.lang.String |
getName()
|
java.lang.String |
getNameWithoutPackage()
|
ClassNode |
getOuterClass()
Helper method to avoid casting to inner class |
FieldNode |
getOuterField(java.lang.String name)
|
java.lang.String |
getPackageName()
|
java.util.List |
getProperties()
|
MethodNode |
getSetterMethod(java.lang.String getterName)
|
java.lang.String |
getSuperClass()
|
ClassNode |
getSuperClassNode()
|
boolean |
implementsInteface(java.lang.String name)
|
boolean |
isDerivedFrom(java.lang.String name)
|
boolean |
isDerivedFromGroovyObject()
|
boolean |
isScript()
|
boolean |
isScriptBody()
|
boolean |
isStaticClass()
Is this class delcared in a static method (such as a closure / inner class declared in a static method) |
protected boolean |
parametersEqual(Parameter[] a,
Parameter[] b)
|
java.lang.String |
resolveClassName(java.lang.String type)
Tries to create a Class node for the given type name |
void |
setModule(ModuleNode module)
|
void |
setScript(boolean script)
|
void |
setScriptBody(boolean scriptBody)
|
void |
setStaticClass(boolean staticClass)
|
java.lang.String |
toString()
|
protected java.lang.String |
tryResolveClassFromCompileUnit(java.lang.String type)
|
void |
visitContents(GroovyClassVisitor visitor)
|
Methods inherited from class org.codehaus.groovy.ast.MetadataNode |
addAttribute, getAttributes, getAttributes, isSynthetic, setAttribute, 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 |
Constructor Detail |
public ClassNode(java.lang.String name, int modifiers, java.lang.String superClass)
name
- is the full name of the classmodifiers
- the modifiers,superClass
- the base class name - use "java.lang.Object" if no direct
base classConstants
public ClassNode(java.lang.String name, int modifiers, java.lang.String superClass, java.lang.String[] interfaces, MixinNode[] mixins)
name
- is the full name of the classmodifiers
- the modifiers,superClass
- the base class name - use "java.lang.Object" if no direct
base classConstants
Method Detail |
public java.lang.String getSuperClass()
public java.util.List getFields()
public java.lang.String[] getInterfaces()
public MixinNode[] getMixins()
public java.util.List getMethods()
public java.lang.String getName()
public int getModifiers()
public java.util.List getProperties()
public java.util.List getConstructors()
public ModuleNode getModule()
public void setModule(ModuleNode module)
public void addField(FieldNode node)
public void addProperty(PropertyNode node)
public PropertyNode addProperty(java.lang.String name, int modifiers, java.lang.String type, Expression initialValueExpression, Statement getterBlock, Statement setterBlock)
public void addConstructor(ConstructorNode node)
public ConstructorNode addConstructor(int modifiers, Parameter[] parameters, Statement code)
public void addMethod(MethodNode node)
public MethodNode addMethod(java.lang.String name, int modifiers, java.lang.String returnType, Parameter[] parameters, Statement code)
public MethodNode addSyntheticMethod(java.lang.String name, int modifiers, java.lang.String returnType, Parameter[] parameters, Statement code)
public FieldNode addField(java.lang.String name, int modifiers, java.lang.String type, Expression initialValue)
public void addInterface(java.lang.String name)
public void addMixin(MixinNode mixin)
public FieldNode getField(java.lang.String name)
public FieldNode getOuterField(java.lang.String name)
public ClassNode getOuterClass()
public void addStaticInitializerStatements(java.util.List staticStatements)
public MethodNode getMethod(java.lang.String name)
public MethodNode getMethod(java.lang.String name, Parameter[] parameters)
public boolean isDerivedFrom(java.lang.String name)
public boolean isDerivedFromGroovyObject()
public boolean implementsInteface(java.lang.String name)
name
- the fully qualified name of the interface
public boolean declaresInterface(java.lang.String name)
name
- the fully qualified name of the interface
public ClassNode getSuperClassNode()
public ClassNode findClassNode(java.lang.String type)
type
- fully qulified type name
protected ClassNode createClassNode(java.lang.Class theClass)
public java.lang.String resolveClassName(java.lang.String type)
type
-
protected java.lang.String tryResolveClassFromCompileUnit(java.lang.String type)
type
-
public CompileUnit getCompileUnit()
protected boolean parametersEqual(Parameter[] a, Parameter[] b)
public java.lang.String getClassNameForExpression(java.lang.String identifier)
public java.lang.String getPackageName()
public java.lang.String getNameWithoutPackage()
public void visitContents(GroovyClassVisitor visitor)
public MethodNode getGetterMethod(java.lang.String getterName)
public MethodNode getSetterMethod(java.lang.String getterName)
public boolean isStaticClass()
public void setStaticClass(boolean staticClass)
public boolean isScriptBody()
public void setScriptBody(boolean scriptBody)
public boolean isScript()
public void setScript(boolean script)
public java.lang.String toString()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |