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:
org.objectweb.asm.Opcodes
public class DecompiledClassNode extends ClassNode
AClassNode
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 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 data, AsmReferenceResolver resolver)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<AnnotationNode>
getAnnotations()
java.util.List<AnnotationNode>
getAnnotations(ClassNode type)
long
getCompilationTimeStamp()
java.util.List<ConstructorNode>
getDeclaredConstructors()
FieldNode
getDeclaredField(java.lang.String name)
Finds a field matching the given name in this class.java.util.List<MethodNode>
getDeclaredMethods(java.lang.String name)
This methods returns a list of all methods of the given name defined in the current classjava.util.List<FieldNode>
getFields()
GenericsType[]
getGenericsTypes()
ClassNode[]
getInterfaces()
java.util.List<MethodNode>
getMethods()
java.lang.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)
java.lang.String
setName(java.lang.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, 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, 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, setModifiers, setModule, setScript, setScriptBody, setStaticClass, setSuperClass, setSyntheticPublic, setUnresolvedSuperClass, toString, toString, tryFindPossibleMethod, visitContents
-
Methods inherited from class org.codehaus.groovy.ast.AnnotatedNode
addAnnotation, addAnnotations, getDeclaringClass, hasNoRealSourcePosition, isSynthetic, setDeclaringClass, setHasNoRealSourcePosition, setSynthetic
-
Methods inherited from class org.codehaus.groovy.ast.ASTNode
copyNodeMetaData, getColumnNumber, getLastColumnNumber, getLastLineNumber, getLineNumber, getMetaDataMap, getNodeMetaData, getNodeMetaData, putNodeMetaData, removeNodeMetaData, setColumnNumber, setLastColumnNumber, setLastLineNumber, setLineNumber, setNodeMetaData, setSourcePosition, visit
-
-
-
-
Constructor Detail
-
DecompiledClassNode
public DecompiledClassNode(ClassStub data, AsmReferenceResolver resolver)
-
-
Method Detail
-
getCompilationTimeStamp
public long getCompilationTimeStamp()
-
getGenericsTypes
public GenericsType[] getGenericsTypes()
- Overrides:
getGenericsTypes
in classClassNode
-
isUsingGenerics
public boolean isUsingGenerics()
- Overrides:
isUsingGenerics
in classClassNode
-
getFields
public java.util.List<FieldNode> getFields()
-
getInterfaces
public ClassNode[] getInterfaces()
- Overrides:
getInterfaces
in classClassNode
- Returns:
- the array of interfaces which this ClassNode implements
-
getMethods
public java.util.List<MethodNode> getMethods()
- Overrides:
getMethods
in classClassNode
- Returns:
- the methods associated with this
ClassNode
-
getDeclaredConstructors
public java.util.List<ConstructorNode> getDeclaredConstructors()
- Overrides:
getDeclaredConstructors
in classClassNode
-
getDeclaredField
public FieldNode getDeclaredField(java.lang.String name)
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
public java.util.List<MethodNode> getDeclaredMethods(java.lang.String name)
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
public ClassNode getUnresolvedSuperClass(boolean useRedirect)
- Overrides:
getUnresolvedSuperClass
in classClassNode
-
getUnresolvedInterfaces
public ClassNode[] getUnresolvedInterfaces(boolean useRedirect)
- Overrides:
getUnresolvedInterfaces
in classClassNode
-
getAnnotations
public java.util.List<AnnotationNode> getAnnotations()
- Overrides:
getAnnotations
in classClassNode
-
getAnnotations
public java.util.List<AnnotationNode> getAnnotations(ClassNode type)
- Overrides:
getAnnotations
in classClassNode
-
setRedirect
public void setRedirect(ClassNode cn)
Description copied from class:ClassNode
Sets this instance as proxy for the givenClassNode
.- Overrides:
setRedirect
in classClassNode
-
setGenericsPlaceHolder
public void setGenericsPlaceHolder(boolean b)
- Overrides:
setGenericsPlaceHolder
in classClassNode
-
setUsingGenerics
public void setUsingGenerics(boolean b)
- Overrides:
setUsingGenerics
in classClassNode
-
setName
public java.lang.String setName(java.lang.String name)
-
isParameterized
public boolean isParameterized()
-
isResolved
public boolean isResolved()
- Overrides:
isResolved
in classClassNode
-
getTypeClass
public java.lang.Class 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.
-
-