Class ClassAnalyzer

java.lang.Object
org.objectweb.asm.ClassVisitor
org.jacoco.core.internal.flow.ClassProbesVisitor
org.jacoco.core.internal.analysis.ClassAnalyzer
All Implemented Interfaces:
IFilterContext

public class ClassAnalyzer extends ClassProbesVisitor implements IFilterContext
Analyzes the structure of a class.
  • Field Details

    • coverage

      private final ClassCoverageImpl coverage
    • probes

      private final boolean[] probes
    • stringPool

      private final StringPool stringPool
    • classAnnotations

      private final Set<String> classAnnotations
    • classAttributes

      private final Set<String> classAttributes
    • sourceDebugExtension

      private String sourceDebugExtension
    • filter

      private final IFilter filter
  • Constructor Details

    • ClassAnalyzer

      public ClassAnalyzer(ClassCoverageImpl coverage, boolean[] probes, StringPool stringPool)
      Creates a new analyzer that builds coverage data for a class.
      Parameters:
      coverage - coverage node for the analyzed class data
      probes - execution data for this class or null
      stringPool - shared pool to minimize the number of String instances
  • Method Details

    • visit

      public void visit(int version, int access, String name, String signature, String superName, String[] interfaces)
      Overrides:
      visit in class org.objectweb.asm.ClassVisitor
    • visitAnnotation

      public org.objectweb.asm.AnnotationVisitor visitAnnotation(String desc, boolean visible)
      Overrides:
      visitAnnotation in class org.objectweb.asm.ClassVisitor
    • visitAttribute

      public void visitAttribute(org.objectweb.asm.Attribute attribute)
      Overrides:
      visitAttribute in class org.objectweb.asm.ClassVisitor
    • visitSource

      public void visitSource(String source, String debug)
      Overrides:
      visitSource in class org.objectweb.asm.ClassVisitor
    • visitMethod

      public MethodProbesVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions)
      Description copied from class: ClassProbesVisitor
      When visiting a method we need a MethodProbesVisitor to handle the probes of that method.
      Specified by:
      visitMethod in class ClassProbesVisitor
    • addMethodCoverage

      private void addMethodCoverage(String name, String desc, String signature, InstructionsBuilder icc, org.objectweb.asm.tree.MethodNode methodNode)
    • visitField

      public org.objectweb.asm.FieldVisitor visitField(int access, String name, String desc, String signature, Object value)
      Overrides:
      visitField in class org.objectweb.asm.ClassVisitor
    • visitTotalProbeCount

      public void visitTotalProbeCount(int count)
      Description copied from class: ClassProbesVisitor
      Reports the total number of encountered probes. This method is called just before ClassVisitor.visitEnd()
      Specified by:
      visitTotalProbeCount in class ClassProbesVisitor
      Parameters:
      count - total number of probes
    • getClassName

      public String getClassName()
      Specified by:
      getClassName in interface IFilterContext
      Returns:
      vm name of the enclosing class
    • getSuperClassName

      public String getSuperClassName()
      Specified by:
      getSuperClassName in interface IFilterContext
      Returns:
      vm name of the super class of the enclosing class
    • getClassAnnotations

      public Set<String> getClassAnnotations()
      Specified by:
      getClassAnnotations in interface IFilterContext
      Returns:
      vm names of the class annotations of the enclosing class
    • getClassAttributes

      public Set<String> getClassAttributes()
      Specified by:
      getClassAttributes in interface IFilterContext
      Returns:
      names of the class attributes
    • getSourceFileName

      public String getSourceFileName()
      Specified by:
      getSourceFileName in interface IFilterContext
      Returns:
      file name of the corresponding source file or null if not available
    • getSourceDebugExtension

      public String getSourceDebugExtension()
      Specified by:
      getSourceDebugExtension in interface IFilterContext
      Returns:
      value of SourceDebugExtension attribute or null if not available