Class DecompiledClassNode
java.lang.Object
org.codehaus.groovy.ast.ASTNode
org.codehaus.groovy.ast.AnnotatedNode
org.codehaus.groovy.ast.ClassNode
org.codehaus.groovy.ast.decompiled.DecompiledClassNode
- All Implemented Interfaces:
GroovydocHolder<AnnotatedNode>
,NodeMetaDataHandler
,org.objectweb.asm.Opcodes
public class DecompiledClassNode extends ClassNode
A
ClassNode
kind representing the classes coming from *.class files decompiled using ASM.- See Also:
AsmDecompiler
-
Field Summary
Fields inherited from class org.codehaus.groovy.ast.ClassNode
clazz, EMPTY_ARRAY, innerClasses, isPrimaryNode, lazyInitLock, SUPER, THIS
Fields inherited from interface groovy.lang.groovydoc.GroovydocHolder
DOC_COMMENT
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, V9
-
Constructor Summary
Constructors Constructor Description DecompiledClassNode(ClassStub classData, AsmReferenceResolver resolver)
-
Method Summary
Modifier and Type Method Description List<AnnotationNode>
getAnnotations()
List<AnnotationNode>
getAnnotations(ClassNode type)
long
getCompilationTimeStamp()
List<ConstructorNode>
getDeclaredConstructors()
FieldNode
getDeclaredField(String name)
Finds a field matching the given name in this class.List<MethodNode>
getDeclaredMethods(String name)
This methods returns a list of all methods of the given name defined in the current classList<FieldNode>
getFields()
GenericsType[]
getGenericsTypes()
ClassNode[]
getInterfaces()
List<MethodNode>
getMethods()
Class
getTypeClass()
Returns the concrete class this classnode relates to.ClassNode[]
getUnresolvedInterfaces(boolean useRedirect)
ClassNode
getUnresolvedSuperClass(boolean useRedirect)
boolean
isParameterized()
boolean
isResolved()
boolean
isUsingGenerics()
void
setGenericsPlaceHolder(boolean b)
String
setName(String name)
void
setRedirect(ClassNode cn)
Sets this instance as proxy for the givenClassNode
.void
setUsingGenerics(boolean b)
Methods inherited from class org.codehaus.groovy.ast.ClassNode
addConstructor, addConstructor, addField, addField, addFieldFirst, addFieldFirst, addInterface, addMethod, addMethod, addMixin, addObjectInitializerStatements, addProperty, addProperty, addStaticInitializerStatements, addSyntheticMethod, addTransform, asGenericsType, declaresAnyInterfaces, declaresInterface, equals, getAbstractMethods, getAllDeclaredMethods, getAllInterfaces, getCompileUnit, getComponentType, getDeclaredConstructor, getDeclaredMethod, getDeclaredMethodsMap, getEnclosingMethod, getField, getFieldIndex, getGetterMethod, getGetterMethod, getInnerClasses, getMethod, getMethods, getMixins, getModifiers, getModule, getName, getNameWithoutPackage, getObjectInitializerStatements, getOuterClass, getOuterClasses, getOuterField, getPackage, getPackageName, getPlainNodeReference, getProperties, getProperty, getSetterMethod, getSetterMethod, getSuperClass, getText, getTransforms, getUnresolvedInterfaces, getUnresolvedName, getUnresolvedSuperClass, hasDeclaredMethod, hashCode, hasMethod, hasPackageName, hasPossibleMethod, hasPossibleStaticMethod, hasProperty, implementsAnyInterfaces, implementsInterface, isAbstract, isAnnotated, isAnnotationDefinition, isArray, isDerivedFrom, isDerivedFromGroovyObject, isEnum, isGenericsPlaceHolder, isInterface, isPrimaryClassNode, isRedirectNode, isScript, isScriptBody, isStaticClass, isSyntheticPublic, makeArray, parametersEqual, positionStmtsAfterEnumInitStmts, redirect, removeConstructor, removeField, removeMethod, renameField, setAnnotated, setCompileUnit, setEnclosingMethod, setGenericsTypes, setInterfaces, setMixins, setModifiers, setModule, setScript, setScriptBody, setStaticClass, setSuperClass, setSyntheticPublic, setUnresolvedSuperClass, toString, toString, tryFindPossibleMethod, visitContents
Methods inherited from class org.codehaus.groovy.ast.AnnotatedNode
addAnnotation, addAnnotations, getDeclaringClass, getGroovydoc, getInstance, hasNoRealSourcePosition, isSynthetic, setDeclaringClass, setHasNoRealSourcePosition, setSynthetic
Methods inherited from class org.codehaus.groovy.ast.ASTNode
copyNodeMetaData, getColumnNumber, getLastColumnNumber, getLastLineNumber, getLineNumber, getMetaDataMap, setColumnNumber, setLastColumnNumber, setLastLineNumber, setLineNumber, setMetaDataMap, setSourcePosition, visit
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.codehaus.groovy.ast.NodeMetaDataHandler
copyNodeMetaData, getNodeMetaData, getNodeMetaData, getNodeMetaData, putNodeMetaData, removeNodeMetaData, setNodeMetaData
-
Constructor Details
-
DecompiledClassNode
-
-
Method Details
-
getCompilationTimeStamp
public long getCompilationTimeStamp() -
getGenericsTypes
- Overrides:
getGenericsTypes
in classClassNode
-
isUsingGenerics
public boolean isUsingGenerics()- Overrides:
isUsingGenerics
in classClassNode
-
getFields
-
getInterfaces
- Overrides:
getInterfaces
in classClassNode
- Returns:
- the interfaces implemented by this
ClassNode
-
getMethods
- Overrides:
getMethods
in classClassNode
- Returns:
- the methods associated with this
ClassNode
-
getDeclaredConstructors
- Overrides:
getDeclaredConstructors
in classClassNode
-
getDeclaredField
Description copied from class:ClassNode
Finds a field matching the given name in this class.- Overrides:
getDeclaredField
in classClassNode
- Parameters:
name
- the name of the field of interest- Returns:
- the method matching the given name and parameters or null
-
getDeclaredMethods
Description copied from class:ClassNode
This methods returns a list of all methods of the given name defined in the current class- Overrides:
getDeclaredMethods
in classClassNode
- Returns:
- the method list
- See Also:
ClassNode.getMethods(String)
-
getUnresolvedSuperClass
- Overrides:
getUnresolvedSuperClass
in classClassNode
-
getUnresolvedInterfaces
- Overrides:
getUnresolvedInterfaces
in classClassNode
-
getAnnotations
- Overrides:
getAnnotations
in classClassNode
-
getAnnotations
- Overrides:
getAnnotations
in classClassNode
-
setRedirect
Description copied from class:ClassNode
Sets this instance as proxy for the givenClassNode
.- Overrides:
setRedirect
in classClassNode
- Parameters:
cn
- the class to redirect to; ifnull
the redirect is removed
-
setGenericsPlaceHolder
public void setGenericsPlaceHolder(boolean b)- Overrides:
setGenericsPlaceHolder
in classClassNode
-
setUsingGenerics
public void setUsingGenerics(boolean b)- Overrides:
setUsingGenerics
in classClassNode
-
setName
-
isParameterized
public boolean isParameterized() -
isResolved
public boolean isResolved()- Overrides:
isResolved
in classClassNode
-
getTypeClass
Description copied from class:ClassNode
Returns the concrete class this classnode relates to. However, this method is inherently unsafe as it may return null depending on the compile phase you are using. AST transformations should never use this method directly, but rather obtain a new class node usingClassNode.getPlainNodeReference()
.- Overrides:
getTypeClass
in classClassNode
- Returns:
- the class this classnode relates to. May return null.
-