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
AClassNodekind 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, V20, V21, 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)longgetCompilationTimeStamp()java.util.List<ConstructorNode>getDeclaredConstructors()FieldNodegetDeclaredField(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.ClassgetTypeClass()Returns the concrete class this classnode relates to.ClassNode[]getUnresolvedInterfaces(boolean useRedirect)ClassNodegetUnresolvedSuperClass(boolean useRedirect)booleanisParameterized()booleanisResolved()booleanisUsingGenerics()voidsetGenericsPlaceHolder(boolean b)java.lang.StringsetName(java.lang.String name)voidsetRedirect(ClassNode cn)Sets this instance as proxy for the givenClassNode.voidsetUsingGenerics(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:
getGenericsTypesin classClassNode
-
isUsingGenerics
public boolean isUsingGenerics()
- Overrides:
isUsingGenericsin classClassNode
-
getFields
public java.util.List<FieldNode> getFields()
-
getInterfaces
public ClassNode[] getInterfaces()
- Overrides:
getInterfacesin classClassNode- Returns:
- the array of interfaces which this ClassNode implements
-
getMethods
public java.util.List<MethodNode> getMethods()
- Overrides:
getMethodsin classClassNode- Returns:
- the methods associated with this
ClassNode
-
getDeclaredConstructors
public java.util.List<ConstructorNode> getDeclaredConstructors()
- Overrides:
getDeclaredConstructorsin classClassNode
-
getDeclaredField
public FieldNode getDeclaredField(java.lang.String name)
Description copied from class:ClassNodeFinds a field matching the given name in this class.- Overrides:
getDeclaredFieldin 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:ClassNodeThis methods returns a list of all methods of the given name defined in the current class- Overrides:
getDeclaredMethodsin classClassNode- Returns:
- the method list
- See Also:
ClassNode.getMethods(String)
-
getUnresolvedSuperClass
public ClassNode getUnresolvedSuperClass(boolean useRedirect)
- Overrides:
getUnresolvedSuperClassin classClassNode
-
getUnresolvedInterfaces
public ClassNode[] getUnresolvedInterfaces(boolean useRedirect)
- Overrides:
getUnresolvedInterfacesin classClassNode
-
getAnnotations
public java.util.List<AnnotationNode> getAnnotations()
- Overrides:
getAnnotationsin classClassNode
-
getAnnotations
public java.util.List<AnnotationNode> getAnnotations(ClassNode type)
- Overrides:
getAnnotationsin classClassNode
-
setRedirect
public void setRedirect(ClassNode cn)
Description copied from class:ClassNodeSets this instance as proxy for the givenClassNode.- Overrides:
setRedirectin classClassNode
-
setGenericsPlaceHolder
public void setGenericsPlaceHolder(boolean b)
- Overrides:
setGenericsPlaceHolderin classClassNode
-
setUsingGenerics
public void setUsingGenerics(boolean b)
- Overrides:
setUsingGenericsin classClassNode
-
setName
public java.lang.String setName(java.lang.String name)
-
isParameterized
public boolean isParameterized()
-
isResolved
public boolean isResolved()
- Overrides:
isResolvedin classClassNode
-
getTypeClass
public java.lang.Class getTypeClass()
Description copied from class:ClassNodeReturns 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:
getTypeClassin classClassNode- Returns:
- the class this classnode relates to. May return null.
-
-