Package org.objectweb.asm.tree
Class ClassNode
- java.lang.Object
-
- org.objectweb.asm.ClassVisitor
-
- org.objectweb.asm.tree.ClassNode
-
public class ClassNode extends org.objectweb.asm.ClassVisitorA node that represents a class.
-
-
Field Summary
Fields Modifier and Type Field Description intaccessThe class's access flags (seeOpcodes).java.util.List<org.objectweb.asm.Attribute>attrsThe non standard attributes of this class.java.util.List<FieldNode>fieldsThe fields of this class.java.util.List<InnerClassNode>innerClassesThe inner classes of this class.java.util.List<java.lang.String>interfacesThe internal names of the interfaces directly implemented by this class (seeType.getInternalName()).java.util.List<AnnotationNode>invisibleAnnotationsThe runtime invisible annotations of this class.java.util.List<TypeAnnotationNode>invisibleTypeAnnotationsThe runtime invisible type annotations of this class.java.util.List<MethodNode>methodsThe methods of this class.ModuleNodemoduleThe module stored in this class.java.lang.StringnameThe internal name of this class (seeType.getInternalName()).java.lang.StringnestHostClassThe internal name of the nest host class of this class.java.util.List<java.lang.String>nestMembersThe internal names of the nest members of this class.java.lang.StringouterClassThe internal name of the enclosing class of this class.java.lang.StringouterMethodThe name of the method that contains this class, or null if this class is not enclosed in a method.java.lang.StringouterMethodDescThe descriptor of the method that contains this class, or null if this class is not enclosed in a method.java.util.List<java.lang.String>permittedSubclassesThe internal names of the permitted subclasses of this class.java.util.List<RecordComponentNode>recordComponentsThe record components of this class.java.lang.StringsignatureThe signature of this class.java.lang.StringsourceDebugThe correspondence between source and compiled elements of this class.java.lang.StringsourceFileThe name of the source file from which this class was compiled.java.lang.StringsuperNameThe internal of name of the super class (seeType.getInternalName()).intversionThe class version.java.util.List<AnnotationNode>visibleAnnotationsThe runtime visible annotations of this class.java.util.List<TypeAnnotationNode>visibleTypeAnnotationsThe runtime visible type annotations of this class.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(org.objectweb.asm.ClassVisitor classVisitor)Makes the given class visitor visit this class.voidcheck(int api)Checks that this class node is compatible with the given ASM API version.voidvisit(int version, int access, java.lang.String name, java.lang.String signature, java.lang.String superName, java.lang.String[] interfaces)org.objectweb.asm.AnnotationVisitorvisitAnnotation(java.lang.String descriptor, boolean visible)voidvisitAttribute(org.objectweb.asm.Attribute attribute)voidvisitEnd()org.objectweb.asm.FieldVisitorvisitField(int access, java.lang.String name, java.lang.String descriptor, java.lang.String signature, java.lang.Object value)voidvisitInnerClass(java.lang.String name, java.lang.String outerName, java.lang.String innerName, int access)org.objectweb.asm.MethodVisitorvisitMethod(int access, java.lang.String name, java.lang.String descriptor, java.lang.String signature, java.lang.String[] exceptions)org.objectweb.asm.ModuleVisitorvisitModule(java.lang.String name, int access, java.lang.String version)voidvisitNestHost(java.lang.String nestHost)voidvisitNestMember(java.lang.String nestMember)voidvisitOuterClass(java.lang.String owner, java.lang.String name, java.lang.String descriptor)voidvisitPermittedSubclass(java.lang.String permittedSubclass)org.objectweb.asm.RecordComponentVisitorvisitRecordComponent(java.lang.String name, java.lang.String descriptor, java.lang.String signature)voidvisitSource(java.lang.String file, java.lang.String debug)org.objectweb.asm.AnnotationVisitorvisitTypeAnnotation(int typeRef, org.objectweb.asm.TypePath typePath, java.lang.String descriptor, boolean visible)
-
-
-
Field Detail
-
version
public int version
The class version. The minor version is stored in the 16 most significant bits, and the major version in the 16 least significant bits.
-
access
public int access
The class's access flags (seeOpcodes). This field also indicates if the class is deprecatedOpcodes.ACC_DEPRECATEDor a recordOpcodes.ACC_RECORD.
-
name
public java.lang.String name
The internal name of this class (seeType.getInternalName()).
-
signature
public java.lang.String signature
The signature of this class. May be null.
-
superName
public java.lang.String superName
The internal of name of the super class (seeType.getInternalName()). For interfaces, the super class isObject. May be null, but only for theObjectclass.
-
interfaces
public java.util.List<java.lang.String> interfaces
The internal names of the interfaces directly implemented by this class (seeType.getInternalName()).
-
sourceFile
public java.lang.String sourceFile
The name of the source file from which this class was compiled. May be null.
-
sourceDebug
public java.lang.String sourceDebug
The correspondence between source and compiled elements of this class. May be null.
-
module
public ModuleNode module
The module stored in this class. May be null.
-
outerClass
public java.lang.String outerClass
The internal name of the enclosing class of this class. May be null.
-
outerMethod
public java.lang.String outerMethod
The name of the method that contains this class, or null if this class is not enclosed in a method.
-
outerMethodDesc
public java.lang.String outerMethodDesc
The descriptor of the method that contains this class, or null if this class is not enclosed in a method.
-
visibleAnnotations
public java.util.List<AnnotationNode> visibleAnnotations
The runtime visible annotations of this class. May be null.
-
invisibleAnnotations
public java.util.List<AnnotationNode> invisibleAnnotations
The runtime invisible annotations of this class. May be null.
-
visibleTypeAnnotations
public java.util.List<TypeAnnotationNode> visibleTypeAnnotations
The runtime visible type annotations of this class. May be null.
-
invisibleTypeAnnotations
public java.util.List<TypeAnnotationNode> invisibleTypeAnnotations
The runtime invisible type annotations of this class. May be null.
-
attrs
public java.util.List<org.objectweb.asm.Attribute> attrs
The non standard attributes of this class. May be null.
-
innerClasses
public java.util.List<InnerClassNode> innerClasses
The inner classes of this class.
-
nestHostClass
public java.lang.String nestHostClass
The internal name of the nest host class of this class. May be null.
-
nestMembers
public java.util.List<java.lang.String> nestMembers
The internal names of the nest members of this class. May be null.
-
permittedSubclasses
public java.util.List<java.lang.String> permittedSubclasses
The internal names of the permitted subclasses of this class. May be null.
-
recordComponents
public java.util.List<RecordComponentNode> recordComponents
The record components of this class. May be null.
-
fields
public java.util.List<FieldNode> fields
The fields of this class.
-
methods
public java.util.List<MethodNode> methods
The methods of this class.
-
-
Constructor Detail
-
ClassNode
public ClassNode()
Constructs a newClassNode. Subclasses must not use this constructor. Instead, they must use theClassNode(int)version.- Throws:
java.lang.IllegalStateException- If a subclass calls this constructor.
-
ClassNode
public ClassNode(int api)
Constructs a newClassNode.- Parameters:
api- the ASM API version implemented by this visitor. Must be one ofOpcodes.ASM4,Opcodes.ASM5,Opcodes.ASM6,Opcodes.ASM7,Opcodes.ASM8, orOpcodes.ASM9.
-
-
Method Detail
-
visit
public void visit(int version, int access, java.lang.String name, java.lang.String signature, java.lang.String superName, java.lang.String[] interfaces)- Overrides:
visitin classorg.objectweb.asm.ClassVisitor
-
visitSource
public void visitSource(java.lang.String file, java.lang.String debug)- Overrides:
visitSourcein classorg.objectweb.asm.ClassVisitor
-
visitModule
public org.objectweb.asm.ModuleVisitor visitModule(java.lang.String name, int access, java.lang.String version)- Overrides:
visitModulein classorg.objectweb.asm.ClassVisitor
-
visitNestHost
public void visitNestHost(java.lang.String nestHost)
- Overrides:
visitNestHostin classorg.objectweb.asm.ClassVisitor
-
visitOuterClass
public void visitOuterClass(java.lang.String owner, java.lang.String name, java.lang.String descriptor)- Overrides:
visitOuterClassin classorg.objectweb.asm.ClassVisitor
-
visitAnnotation
public org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String descriptor, boolean visible)- Overrides:
visitAnnotationin classorg.objectweb.asm.ClassVisitor
-
visitTypeAnnotation
public org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int typeRef, org.objectweb.asm.TypePath typePath, java.lang.String descriptor, boolean visible)- Overrides:
visitTypeAnnotationin classorg.objectweb.asm.ClassVisitor
-
visitAttribute
public void visitAttribute(org.objectweb.asm.Attribute attribute)
- Overrides:
visitAttributein classorg.objectweb.asm.ClassVisitor
-
visitNestMember
public void visitNestMember(java.lang.String nestMember)
- Overrides:
visitNestMemberin classorg.objectweb.asm.ClassVisitor
-
visitPermittedSubclass
public void visitPermittedSubclass(java.lang.String permittedSubclass)
- Overrides:
visitPermittedSubclassin classorg.objectweb.asm.ClassVisitor
-
visitInnerClass
public void visitInnerClass(java.lang.String name, java.lang.String outerName, java.lang.String innerName, int access)- Overrides:
visitInnerClassin classorg.objectweb.asm.ClassVisitor
-
visitRecordComponent
public org.objectweb.asm.RecordComponentVisitor visitRecordComponent(java.lang.String name, java.lang.String descriptor, java.lang.String signature)- Overrides:
visitRecordComponentin classorg.objectweb.asm.ClassVisitor
-
visitField
public org.objectweb.asm.FieldVisitor visitField(int access, java.lang.String name, java.lang.String descriptor, java.lang.String signature, java.lang.Object value)- Overrides:
visitFieldin classorg.objectweb.asm.ClassVisitor
-
visitMethod
public org.objectweb.asm.MethodVisitor visitMethod(int access, java.lang.String name, java.lang.String descriptor, java.lang.String signature, java.lang.String[] exceptions)- Overrides:
visitMethodin classorg.objectweb.asm.ClassVisitor
-
visitEnd
public void visitEnd()
- Overrides:
visitEndin classorg.objectweb.asm.ClassVisitor
-
check
public void check(int api)
Checks that this class node is compatible with the given ASM API version. This method checks that this node, and all its children recursively, do not contain elements that were introduced in more recent versions of the ASM API than the given version.- Parameters:
api- an ASM API version. Must be one ofOpcodes.ASM4,Opcodes.ASM5,Opcodes.ASM6,Opcodes.ASM7,Opcodes.ASM8orOpcodes.ASM9.
-
accept
public void accept(org.objectweb.asm.ClassVisitor classVisitor)
Makes the given class visitor visit this class.- Parameters:
classVisitor- a class visitor.
-
-