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
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 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, 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, 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 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 interfaces implemented by this
ClassNode
-
getMethods
public List<MethodNode> getMethods()
- Overrides:
getMethods
in classClassNode
- Returns:
- the 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 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
-
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.
-
-