Class Analyzer


  • public class Analyzer
    extends java.lang.Object
    An Analyzer instance processes a set of Java class files and calculates coverage data for them. For each class file the result is reported to a given ICoverageVisitor instance. In addition the Analyzer requires a ExecutionDataStore instance that holds the execution data for the classes to analyze. The Analyzer offers several methods to analyze classes from a variety of sources.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int analyzeAll​(java.io.File file)
      Analyzes all class files contained in the given file or folder.
      int analyzeAll​(java.io.InputStream input, java.lang.String location)
      Analyzes all classes found in the given input stream.
      int analyzeAll​(java.lang.String path, java.io.File basedir)
      Analyzes all classes from the given class path.
      void analyzeClass​(byte[] buffer, java.lang.String location)
      Analyzes the class definition from a given in-memory buffer.
      void analyzeClass​(java.io.InputStream input, java.lang.String location)
      Analyzes the class definition from a given input stream.
      void analyzeClass​(org.objectweb.asm.ClassReader reader)
      Analyzes the class given as a ASM reader.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Analyzer

        public Analyzer​(ExecutionDataStore executionData,
                        ICoverageVisitor coverageVisitor)
        Creates a new analyzer reporting to the given output.
        Parameters:
        executionData - execution data
        coverageVisitor - the output instance that will coverage data for every analyzed class
    • Method Detail

      • analyzeClass

        public void analyzeClass​(org.objectweb.asm.ClassReader reader)
        Analyzes the class given as a ASM reader.
        Parameters:
        reader - reader with class definitions
      • analyzeClass

        public void analyzeClass​(byte[] buffer,
                                 java.lang.String location)
                          throws java.io.IOException
        Analyzes the class definition from a given in-memory buffer.
        Parameters:
        buffer - class definitions
        location - a location description used for exception messages
        Throws:
        java.io.IOException - if the class can't be analyzed
      • analyzeClass

        public void analyzeClass​(java.io.InputStream input,
                                 java.lang.String location)
                          throws java.io.IOException
        Analyzes the class definition from a given input stream. The provided InputStream is not closed by this method.
        Parameters:
        input - stream to read class definition from
        location - a location description used for exception messages
        Throws:
        java.io.IOException - if the stream can't be read or the class can't be analyzed
      • analyzeAll

        public int analyzeAll​(java.io.InputStream input,
                              java.lang.String location)
                       throws java.io.IOException
        Analyzes all classes found in the given input stream. The input stream may either represent a single class file, a ZIP archive, a Pack200 archive or a gzip stream that is searched recursively for class files. All other content types are ignored. The provided InputStream is not closed by this method.
        Parameters:
        input - input data
        location - a location description used for exception messages
        Returns:
        number of class files found
        Throws:
        java.io.IOException - if the stream can't be read or a class can't be analyzed
      • analyzeAll

        public int analyzeAll​(java.io.File file)
                       throws java.io.IOException
        Analyzes all class files contained in the given file or folder. Class files as well as ZIP files are considered. Folders are searched recursively.
        Parameters:
        file - file or folder to look for class files
        Returns:
        number of class files found
        Throws:
        java.io.IOException - if the file can't be read or a class can't be analyzed
      • analyzeAll

        public int analyzeAll​(java.lang.String path,
                              java.io.File basedir)
                       throws java.io.IOException
        Analyzes all classes from the given class path. Directories containing class files as well as archive files are considered.
        Parameters:
        path - path definition
        basedir - optional base directory, if null the current working directory is used as the base for relative path entries
        Returns:
        number of class files found
        Throws:
        java.io.IOException - if a file can't be read or a class can't be analyzed