Package org.sonar.java.resolve
Class BytecodeVisitor
- java.lang.Object
-
- org.objectweb.asm.ClassVisitor
-
- org.sonar.java.resolve.BytecodeVisitor
-
public class BytecodeVisitor extends org.objectweb.asm.ClassVisitor
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description JavaType
convertAsmType(org.objectweb.asm.Type asmType)
JavaType
convertAsmType(org.objectweb.asm.Type asmType, int flags)
void
visit(int version, int flags, String name, String signature, String superName, String[] interfaces)
org.objectweb.asm.AnnotationVisitor
visitAnnotation(String desc, boolean visible)
void
visitAttribute(org.objectweb.asm.Attribute attr)
void
visitEnd()
If at this point there is no owner of current class, then this is a top-level class, because outer classes always will be completed before inner classes - seedefineOuterClass(String, String, int)
.org.objectweb.asm.FieldVisitor
visitField(int flags, String name, String desc, String signature, Object value)
void
visitInnerClass(String name, String outerName, String innerName, int flags)
org.objectweb.asm.MethodVisitor
visitMethod(int flags, String name, String desc, String signature, String[] exceptions)
void
visitOuterClass(String owner, String name, String desc)
void
visitSource(String source, String debug)
org.objectweb.asm.AnnotationVisitor
visitTypeAnnotation(int typeRef, org.objectweb.asm.TypePath typePath, String desc, boolean visible)
-
-
-
Method Detail
-
visit
public void visit(int version, int flags, String name, @Nullable String signature, @Nullable String superName, @Nullable String[] interfaces)
- Overrides:
visit
in classorg.objectweb.asm.ClassVisitor
-
visitSource
public void visitSource(@Nullable String source, @Nullable String debug)
- Overrides:
visitSource
in classorg.objectweb.asm.ClassVisitor
-
visitOuterClass
public void visitOuterClass(String owner, String name, String desc)
In other words must be called only for anonymous classes or named classes declared within methods, which must not be processed byBytecodeCompleter
, therefore this method always throwsIllegalStateException
.- Overrides:
visitOuterClass
in classorg.objectweb.asm.ClassVisitor
- Throws:
IllegalStateException
- always
-
visitAnnotation
public org.objectweb.asm.AnnotationVisitor visitAnnotation(String desc, boolean visible)
- Overrides:
visitAnnotation
in classorg.objectweb.asm.ClassVisitor
-
visitTypeAnnotation
public org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int typeRef, org.objectweb.asm.TypePath typePath, String desc, boolean visible)
- Overrides:
visitTypeAnnotation
in classorg.objectweb.asm.ClassVisitor
-
visitAttribute
public void visitAttribute(org.objectweb.asm.Attribute attr)
- Overrides:
visitAttribute
in classorg.objectweb.asm.ClassVisitor
-
visitInnerClass
public void visitInnerClass(String name, @Nullable String outerName, @Nullable String innerName, int flags)
- Overrides:
visitInnerClass
in classorg.objectweb.asm.ClassVisitor
-
visitField
public org.objectweb.asm.FieldVisitor visitField(int flags, String name, String desc, @Nullable String signature, @Nullable Object value)
- Overrides:
visitField
in classorg.objectweb.asm.ClassVisitor
-
visitMethod
public org.objectweb.asm.MethodVisitor visitMethod(int flags, String name, String desc, @Nullable String signature, @Nullable String[] exceptions)
- Overrides:
visitMethod
in classorg.objectweb.asm.ClassVisitor
-
convertAsmType
public JavaType convertAsmType(org.objectweb.asm.Type asmType)
-
convertAsmType
public JavaType convertAsmType(org.objectweb.asm.Type asmType, int flags)
-
visitEnd
public void visitEnd()
If at this point there is no owner of current class, then this is a top-level class, because outer classes always will be completed before inner classes - seedefineOuterClass(String, String, int)
. Owner of top-level classes - is a package.- Overrides:
visitEnd
in classorg.objectweb.asm.ClassVisitor
-
-