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 JavaTypeconvertAsmType(org.objectweb.asm.Type asmType)JavaTypeconvertAsmType(org.objectweb.asm.Type asmType, int flags)voidvisit(int version, int flags, String name, String signature, String superName, String[] interfaces)org.objectweb.asm.AnnotationVisitorvisitAnnotation(String desc, boolean visible)voidvisitAttribute(org.objectweb.asm.Attribute attr)voidvisitEnd()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.FieldVisitorvisitField(int flags, String name, String desc, String signature, Object value)voidvisitInnerClass(String name, String outerName, String innerName, int flags)org.objectweb.asm.MethodVisitorvisitMethod(int flags, String name, String desc, String signature, String[] exceptions)voidvisitOuterClass(String owner, String name, String desc)voidvisitSource(String source, String debug)org.objectweb.asm.AnnotationVisitorvisitTypeAnnotation(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:
visitin classorg.objectweb.asm.ClassVisitor
-
visitSource
public void visitSource(@Nullable String source, @Nullable String debug)
- Overrides:
visitSourcein 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:
visitOuterClassin classorg.objectweb.asm.ClassVisitor- Throws:
IllegalStateException- always
-
visitAnnotation
public org.objectweb.asm.AnnotationVisitor visitAnnotation(String desc, boolean visible)
- Overrides:
visitAnnotationin classorg.objectweb.asm.ClassVisitor
-
visitTypeAnnotation
public org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int typeRef, org.objectweb.asm.TypePath typePath, String desc, boolean visible)- Overrides:
visitTypeAnnotationin classorg.objectweb.asm.ClassVisitor
-
visitAttribute
public void visitAttribute(org.objectweb.asm.Attribute attr)
- Overrides:
visitAttributein classorg.objectweb.asm.ClassVisitor
-
visitInnerClass
public void visitInnerClass(String name, @Nullable String outerName, @Nullable String innerName, int flags)
- Overrides:
visitInnerClassin classorg.objectweb.asm.ClassVisitor
-
visitField
public org.objectweb.asm.FieldVisitor visitField(int flags, String name, String desc, @Nullable String signature, @Nullable Object value)- Overrides:
visitFieldin classorg.objectweb.asm.ClassVisitor
-
visitMethod
public org.objectweb.asm.MethodVisitor visitMethod(int flags, String name, String desc, @Nullable String signature, @Nullable String[] exceptions)- Overrides:
visitMethodin 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:
visitEndin classorg.objectweb.asm.ClassVisitor
-
-