|
|||||||||||
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.AnnotatedNode
org.codehaus.groovy.ast.ClassNode
Represents a class declaration
Field Summary | |
private CompileUnit |
compileUnit
|
private java.util.List |
constructors
|
private static java.lang.String[] |
defaultImports
|
private MethodNode |
enclosingMethod
|
private java.util.Map |
fieldIndex
|
private java.util.List |
fields
|
private java.lang.String[] |
interfaces
|
private java.util.logging.Logger |
log
|
private java.util.List |
methods
|
private MixinNode[] |
mixins
|
private int |
modifiers
|
private ModuleNode |
module
|
private java.lang.String |
name
|
private java.util.List |
properties
|
private boolean |
script
|
private boolean |
scriptBody
|
private boolean |
staticClass
|
private java.lang.String |
superClass
|
private ClassNode |
superClassNode
|
Fields inherited from class org.codehaus.groovy.ast.AnnotatedNode |
|
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_ANNOTATION, 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, V1_1, V1_2, V1_3, V1_4, V1_5 |
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)
|
private ConstructorNode |
createConstructorNode(java.lang.reflect.Constructor constructor)
Factory method to create a new ConstructorNode via reflection |
protected MethodNode |
createMethodNode(java.lang.reflect.Method method)
Factory method to create a new MethodNode via reflection |
protected Parameter |
createParameter(java.lang.Class parameterType,
int idx)
|
protected Parameter[] |
createParameters(java.lang.Class[] types)
|
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 |
protected int |
findMatchingMethodInList(MethodNode method,
java.util.List methods)
|
java.util.List |
getAbstractMethods()
|
java.util.List |
getAllDeclaredMethods()
|
java.lang.String |
getClassNameForExpression(java.lang.String identifier)
|
CompileUnit |
getCompileUnit()
|
java.util.List |
getDeclaredConstructors()
|
MethodNode |
getDeclaredMethod(java.lang.String name,
Parameter[] parameters)
|
java.util.List |
getDeclaredMethods(java.lang.String name)
|
protected java.util.Map |
getDeclaredMethodsMap()
|
MethodNode |
getEnclosingMethod()
|
FieldNode |
getField(java.lang.String name)
|
java.util.List |
getFields()
|
MethodNode |
getGetterMethod(java.lang.String getterName)
|
java.lang.String[] |
getInterfaces()
|
java.util.List |
getMethods()
|
java.util.List |
getMethods(java.lang.String name)
|
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 |
hasPossibleMethod(java.lang.String name,
Expression arguments)
Returns true if the given method has a possibly matching method with the given name and arguments |
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)
|
void |
setEnclosingMethod(MethodNode enclosingMethod)
|
void |
setModule(ModuleNode module)
|
void |
setScript(boolean script)
|
void |
setScriptBody(boolean scriptBody)
|
void |
setStaticClass(boolean staticClass)
|
void |
setSuperClass(java.lang.String superClass)
|
java.lang.String |
toString()
|
private java.lang.String |
tryResolveClassAndInnerClass(java.lang.String type)
|
protected java.lang.String |
tryResolveClassFromCompileUnit(java.lang.String type)
|
void |
visitContents(GroovyClassVisitor visitor)
|
Methods inherited from class org.codehaus.groovy.ast.AnnotatedNode |
addAnnotation, addAnnotations, getAnnotations, getAnnotations, isSynthetic, 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 |
Field Detail |
private static final java.lang.String[] defaultImports
private java.util.logging.Logger log
private java.lang.String name
private int modifiers
private java.lang.String superClass
private java.lang.String[] interfaces
private MixinNode[] mixins
private java.util.List constructors
private java.util.List methods
private java.util.List fields
private java.util.List properties
private java.util.Map fieldIndex
private ModuleNode module
private CompileUnit compileUnit
private boolean staticClass
private boolean scriptBody
private boolean script
private ClassNode superClassNode
private MethodNode enclosingMethod
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 MethodNode getEnclosingMethod()
public void setEnclosingMethod(MethodNode enclosingMethod)
public java.lang.String getSuperClass()
public void setSuperClass(java.lang.String superClass)
public java.util.List getFields()
public java.lang.String[] getInterfaces()
public MixinNode[] getMixins()
public java.util.List getMethods()
public java.util.List getAbstractMethods()
public java.util.List getAllDeclaredMethods()
protected java.util.Map getDeclaredMethodsMap()
protected int findMatchingMethodInList(MethodNode method, java.util.List methods)
public java.lang.String getName()
public int getModifiers()
public java.util.List getProperties()
public java.util.List getDeclaredConstructors()
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 java.util.List getDeclaredMethods(java.lang.String name)
public java.util.List getMethods(java.lang.String name)
public MethodNode getDeclaredMethod(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)
private ConstructorNode createConstructorNode(java.lang.reflect.Constructor constructor)
protected MethodNode createMethodNode(java.lang.reflect.Method method)
protected Parameter[] createParameters(java.lang.Class[] types)
types
-
protected Parameter createParameter(java.lang.Class parameterType, int idx)
public java.lang.String resolveClassName(java.lang.String type)
private java.lang.String tryResolveClassAndInnerClass(java.lang.String 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()
public boolean hasPossibleMethod(java.lang.String name, Expression arguments)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |