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. For classes this method is called just before ClassVisitor.visitEnd(). For interfaces this method is called before the first method (the static initializer) is emitted.
      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