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
-
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
-
getInterfaces
public ClassNode[] getInterfaces()
- Overrides:
getInterfaces
in classClassNode
- Returns:
- the array of interfaces which this ClassNode implements
-
getMethods
public List<MethodNode> getMethods()
- Overrides:
getMethods
in classClassNode
- Returns:
- the list of methods associated with this ClassNode
-
getDeclaredConstructors
public List<ConstructorNode> getDeclaredConstructors()
- Overrides:
getDeclaredConstructors
in classClassNode
-
getDeclaredField
public FieldNode getDeclaredField(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 List<MethodNode> getDeclaredMethods(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 List<AnnotationNode> getAnnotations()
- Overrides:
getAnnotations
in classClassNode
-
getAnnotations
public 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 given ClassNode.- Overrides:
setRedirect
in classClassNode
- Parameters:
cn
- the class to redirect to. If set to null the redirect will be removed
-
setGenericsPlaceHolder
public void setGenericsPlaceHolder(boolean b)
- Overrides:
setGenericsPlaceHolder
in classClassNode
-
setUsingGenerics
public void setUsingGenerics(boolean b)
- Overrides:
setUsingGenerics
in classClassNode
-
isParameterized
public boolean isParameterized()
-
isResolved
public boolean isResolved()
- Overrides:
isResolved
in classClassNode
-
getTypeClass
public 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.
-
-