Top Description Fields Constructors Methods
org.codehaus.groovy.ast.decompiled

public Class DecompiledClassNode

extends ClassNode
Class Inheritance
Imports
org.codehaus.groovy.ast.AnnotatedNode, .AnnotationNode, .ClassNode, .ConstructorNode, .FieldNode, .GenericsType, .MethodNode, .MixinNode, org.codehaus.groovy.classgen.Verifier, org.objectweb.asm.Opcodes, java.lang.reflect.Modifier, java.util.List, java.util.function.Supplier

A ClassNode kind representing the classes coming from *.class files decompiled using ASM.
See Also
AsmDecompiler

Field Summary

Modifier and TypeField and Description
private final ClassStub
private volatile boolean
private final AsmReferenceResolver
private volatile boolean
Inherited from org.codehaus.groovy.ast.ClassNode:
clazzEMPTY_ARRAYinnerClassesisPrimaryNodelazyInitLockSUPERTHIS

Constructor Summary

AccessConstructor and Description
public
DecompiledClassNode(final ClassStub classData, final AsmReferenceResolver resolver)

Method Summary

Modifier and TypeMethod and Description
private <T extends AnnotatedNode> T
addAnnotations(MemberStub stub, T node)

private ConstructorNode
private FieldNode
private MethodNode
public List<AnnotationNode>
public List<AnnotationNode>
public long
public List<ConstructorNode>
public FieldNode
getDeclaredField(final String
the name of the field of interest
name
)

Overrides org.codehaus.groovy.ast.ClassNode.getDeclaredField.

Finds a field matching the given name in this class.
public List<MethodNode>
getDeclaredMethods(final String name)

Overrides org.codehaus.groovy.ast.ClassNode.getDeclaredMethods.

This method returns a list of all methods of the given name defined in the current class
public List<FieldNode>
public GenericsType[]
public ClassNode[]
public List<MethodNode>
private static int
getModifiers(ClassStub classData)

Handle the case of inner classes returning the correct modifiers from the INNERCLASS reference since the top-level modifiers for inner classes won't include static or private/protected.

public Class<T>
getTypeClass()

Overrides org.codehaus.groovy.ast.ClassNode.getTypeClass.

Returns the concrete class this classnode relates to.
public ClassNode[]
public ClassNode
public boolean
public boolean
public boolean
private void
private void
public void
public String
public void
setRedirect(ClassNode
the class to redirect to; if null the redirect is removed
cn
)

Overrides org.codehaus.groovy.ast.ClassNode.setRedirect.

Sets this instance as proxy for the given ClassNode.
public void
Inherited from org.codehaus.groovy.ast.ClassNode:
addConstructoraddConstructoraddFieldaddFieldaddFieldFirstaddFieldFirstaddInterfaceaddMethodaddMethodaddMixinaddObjectInitializerStatementsaddPropertyaddPropertyaddStaticInitializerStatementsaddSyntheticMethodaddTransformasGenericsTypedeclaresAnyInterfacesdeclaresInterfaceequalsgetAbstractMethodsgetAllDeclaredMethodsgetAllInterfacesgetCompileUnitgetComponentTypegetDeclaredConstructorgetDeclaredMethodgetDeclaredMethodsMapgetEnclosingMethodgetFieldgetFieldIndexgetGetterMethodgetGetterMethodgetInnerClassesgetMethodgetMethodsgetMixinsgetModifiersgetModulegetNamegetNameWithoutPackagegetObjectInitializerStatementsgetOuterClassgetOuterClassesgetOuterFieldgetPackagegetPackageNamegetPlainNodeReferencegetPropertiesgetPropertygetSetterMethodgetSetterMethodgetSuperClassgetTextgetTransformsgetUnresolvedInterfacesgetUnresolvedNamegetUnresolvedSuperClasshasDeclaredMethodhashCodehasMethodhasPackageNamehasPossibleMethodhasPossibleStaticMethodhasPropertyimplementsAnyInterfacesimplementsInterfaceisAbstractisAnnotatedisAnnotationDefinitionisArrayisDerivedFromisDerivedFromGroovyObjectisEnumisGenericsPlaceHolderisInterfaceisPrimaryClassNodeisRedirectNodeisScriptisScriptBodyisStaticClassisSyntheticPublicmakeArrayparametersEqualpositionStmtsAfterEnumInitStmtsredirectremoveConstructorremoveFieldremoveMethodrenameFieldsetAnnotatedsetCompileUnitsetEnclosingMethodsetGenericsTypessetInterfacessetMixinssetModifierssetModulesetScriptsetScriptBodysetStaticClasssetSuperClasssetSyntheticPublicsetUnresolvedSuperClasstoStringtoStringtryFindPossibleMethodvisitContents

Field Detail

classDataback to summary
private final ClassStub classData
membersInitializedback to summary
private volatile boolean membersInitialized
resolverback to summary
private final AsmReferenceResolver resolver
supersInitializedback to summary
private volatile boolean supersInitialized

Constructor Detail

DecompiledClassNodeback to summary
public DecompiledClassNode(final ClassStub classData, final AsmReferenceResolver resolver)

Method Detail

addAnnotationsback to summary
private <T extends AnnotatedNode> T addAnnotations(MemberStub stub, T node)
createConstructorback to summary
private ConstructorNode createConstructor(final MethodStub method)
createFieldNodeback to summary
private FieldNode createFieldNode(final FieldStub field)
createMethodNodeback to summary
private MethodNode createMethodNode(final MethodStub method)
getAnnotationsback to summary
public List<AnnotationNode> getAnnotations()

Overrides org.codehaus.groovy.ast.ClassNode.getAnnotations.

Annotations
@Override
getAnnotationsback to summary
public List<AnnotationNode> getAnnotations(ClassNode type)

Overrides org.codehaus.groovy.ast.ClassNode.getAnnotations.

Annotations
@Override
getCompilationTimeStampback to summary
public long getCompilationTimeStamp()
getDeclaredConstructorsback to summary
public List<ConstructorNode> getDeclaredConstructors()

Overrides org.codehaus.groovy.ast.ClassNode.getDeclaredConstructors.

Annotations
@Override
getDeclaredFieldback to summary
public FieldNode getDeclaredField(final String name)

Overrides org.codehaus.groovy.ast.ClassNode.getDeclaredField.

Doc from org.codehaus.groovy.ast.ClassNode.getDeclaredField.

Finds a field matching the given name in this class.

Parameters
name:String

the name of the field of interest

Returns:FieldNode

the method matching the given name and parameters or null

Annotations
@Override
getDeclaredMethodsback to summary
public List<MethodNode> getDeclaredMethods(final String name)

Overrides org.codehaus.groovy.ast.ClassNode.getDeclaredMethods.

Doc from org.codehaus.groovy.ast.ClassNode.getDeclaredMethods.

This method returns a list of all methods of the given name defined in the current class

Returns:List<MethodNode>

the method list

Annotations
@Override
getFieldsback to summary
public List<FieldNode> getFields()

Overrides org.codehaus.groovy.ast.ClassNode.getFields.

Returns:List<FieldNode>

Doc from org.codehaus.groovy.ast.ClassNode.getFields.

the fields associated with this ClassNode

Annotations
@Override
getGenericsTypesback to summary
public GenericsType[] getGenericsTypes()

Overrides org.codehaus.groovy.ast.ClassNode.getGenericsTypes.

Annotations
@Override
getInterfacesback to summary
public ClassNode[] getInterfaces()

Overrides org.codehaus.groovy.ast.ClassNode.getInterfaces.

Returns:ClassNode[]

Doc from org.codehaus.groovy.ast.ClassNode.getInterfaces.

the interfaces implemented by this ClassNode

Annotations
@Override
getMethodsback to summary
public List<MethodNode> getMethods()

Overrides org.codehaus.groovy.ast.ClassNode.getMethods.

Returns:List<MethodNode>

Doc from org.codehaus.groovy.ast.ClassNode.getMethods.

the methods associated with this ClassNode

Annotations
@Override
getModifiersback to summary
private static int getModifiers(ClassStub classData)

Handle the case of inner classes returning the correct modifiers from the INNERCLASS reference since the top-level modifiers for inner classes won't include static or private/protected.

getTypeClassback to summary
public Class<T> getTypeClass()

Overrides org.codehaus.groovy.ast.ClassNode.getTypeClass.

Doc from org.codehaus.groovy.ast.ClassNode.getTypeClass.

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 getPlainNodeReference().

Returns:Class<T>

the class this classnode relates to. May return null.

Annotations
@Override
getUnresolvedInterfacesback to summary
public ClassNode[] getUnresolvedInterfaces(boolean useRedirect)

Overrides org.codehaus.groovy.ast.ClassNode.getUnresolvedInterfaces.

Annotations
@Override
getUnresolvedSuperClassback to summary
public ClassNode getUnresolvedSuperClass(boolean useRedirect)

Overrides org.codehaus.groovy.ast.ClassNode.getUnresolvedSuperClass.

Annotations
@Override
isParameterizedback to summary
public boolean isParameterized()
isResolvedback to summary
public boolean isResolved()

Overrides org.codehaus.groovy.ast.ClassNode.isResolved.

Annotations
@Override
isUsingGenericsback to summary
public boolean isUsingGenerics()

Overrides org.codehaus.groovy.ast.ClassNode.isUsingGenerics.

Annotations
@Override
lazyInitMembersback to summary
private void lazyInitMembers()
lazyInitSupersback to summary
private void lazyInitSupers()
setGenericsPlaceHolderback to summary
public void setGenericsPlaceHolder(boolean b)

Overrides org.codehaus.groovy.ast.ClassNode.setGenericsPlaceHolder.

Annotations
@Override
setNameback to summary
public String setName(String name)

Overrides org.codehaus.groovy.ast.ClassNode.setName.

Annotations
@Override
setRedirectback to summary
public void setRedirect(ClassNode cn)

Overrides org.codehaus.groovy.ast.ClassNode.setRedirect.

Doc from org.codehaus.groovy.ast.ClassNode.setRedirect.

Sets this instance as proxy for the given ClassNode.

Parameters
cn:ClassNode

the class to redirect to; if null the redirect is removed

Annotations
@Override
setUsingGenericsback to summary
public void setUsingGenerics(boolean b)

Overrides org.codehaus.groovy.ast.ClassNode.setUsingGenerics.

Annotations
@Override