Package org.codehaus.groovy.ast.decompiled

## 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, V9`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `DecompiledClassNode​(ClassStub data, AsmReferenceResolver resolver)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    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 class
    `List<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` | `isResolved()` |
    `boolean` | `isUsingGenerics()` |
    `void` | `setGenericsPlaceHolder​(boolean b)` |
    `String` | `setName​(String name)` |
    `void` | `setRedirect​(ClassNode cn)` | Sets this instance as proxy for the given `ClassNode`.
    `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 Detail

    - #### DecompiledClassNode

          public DecompiledClassNode​(ClassStub data,
                                     AsmReferenceResolver resolver)

  - ### Method Detail

    - #### getCompilationTimeStamp

          public long getCompilationTimeStamp()

    - #### getGenericsTypes

          public GenericsType[] getGenericsTypes()

      Overrides:
        `getGenericsTypes` in class `ClassNode`

    - #### isUsingGenerics

          public boolean isUsingGenerics()

      Overrides:
        `isUsingGenerics` in class `ClassNode`

    - #### getFields

          public List<FieldNode> getFields()

      Overrides:
        `getFields` in class `ClassNode`
      Returns:
        the fields associated with this `ClassNode`

    - #### getInterfaces

          public ClassNode[] getInterfaces()

      Overrides:
        `getInterfaces` in class `ClassNode`
      Returns:
        the interfaces implemented by this `ClassNode`

    - #### getMethods

          public List<MethodNode> getMethods()

      Overrides:
        `getMethods` in class `ClassNode`
      Returns:
        the methods associated with this `ClassNode`

    - #### getDeclaredConstructors

          public List<ConstructorNode> getDeclaredConstructors()

      Overrides:
        `getDeclaredConstructors` in class `ClassNode`

    - #### getDeclaredField

          public FieldNode getDeclaredField​(String name)

      Description copied from class: `ClassNode`
      Finds a field matching the given name in this class.
      Overrides:
        `getDeclaredField` in class `ClassNode`
      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 class `ClassNode`
      Returns:
        the method list
      See Also:
        `ClassNode.getMethods(String)`

    - #### getUnresolvedSuperClass

          public ClassNode getUnresolvedSuperClass​(boolean useRedirect)

      Overrides:
        `getUnresolvedSuperClass` in class `ClassNode`

    - #### getUnresolvedInterfaces

          public ClassNode[] getUnresolvedInterfaces​(boolean useRedirect)

      Overrides:
        `getUnresolvedInterfaces` in class `ClassNode`

    - #### getAnnotations

          public List<AnnotationNode> getAnnotations()

      Overrides:
        `getAnnotations` in class `ClassNode`

    - #### getAnnotations

          public List<AnnotationNode> getAnnotations​(ClassNode type)

      Overrides:
        `getAnnotations` in class `ClassNode`

    - #### setRedirect

          public void setRedirect​(ClassNode cn)

      Description copied from class: `ClassNode`
      Sets this instance as proxy for the given `ClassNode`.
      Overrides:
        `setRedirect` in class `ClassNode`
      Parameters:
        `cn` - the class to redirect to; if `null` the redirect is removed

    - #### setGenericsPlaceHolder

          public void setGenericsPlaceHolder​(boolean b)

      Overrides:
        `setGenericsPlaceHolder` in class `ClassNode`

    - #### setUsingGenerics

          public void setUsingGenerics​(boolean b)

      Overrides:
        `setUsingGenerics` in class `ClassNode`

    - #### setName

          public String setName​(String name)

      Overrides:
        `setName` in class `ClassNode`

    - #### isResolved

          public boolean isResolved()

      Overrides:
        `isResolved` in class `ClassNode`

    - #### 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 using `ClassNode.getPlainNodeReference()`.
      Overrides:
        `getTypeClass` in class `ClassNode`
      Returns:
        the class this classnode relates to. May return null.