Home | History | Annotate | Download | only in analysis
      1 /*******************************************************************************
      2  * Copyright (c) 2009, 2018 Mountainminds GmbH & Co. KG and Contributors
      3  * All rights reserved. This program and the accompanying materials
      4  * are made available under the terms of the Eclipse Public License v1.0
      5  * which accompanies this distribution, and is available at
      6  * http://www.eclipse.org/legal/epl-v10.html
      7  *
      8  * Contributors:
      9  *    Marc R. Hoffmann - initial API and implementation
     10  *
     11  *******************************************************************************/
     12 package org.jacoco.core.analysis;
     13 
     14 import java.util.Collection;
     15 
     16 /**
     17  * Coverage data of a single class containing methods. The name of this node is
     18  * the fully qualified class name in VM notation (slash separated).
     19  *
     20  * @see IMethodCoverage
     21  */
     22 public interface IClassCoverage extends ISourceNode {
     23 
     24 	/**
     25 	 * Returns the identifier for this class which is the CRC64 signature of the
     26 	 * class definition.
     27 	 *
     28 	 * @return class identifier
     29 	 */
     30 	public long getId();
     31 
     32 	/**
     33 	 * Returns if the the analyzed class does match the execution data provided.
     34 	 * More precisely if execution data is available for a class with the same
     35 	 * qualified name but with a different class id.
     36 	 *
     37 	 * @return <code>true</code> if this class does not match to the provided
     38 	 *         execution data.
     39 	 */
     40 	public boolean isNoMatch();
     41 
     42 	/**
     43 	 * Returns the VM signature of the class.
     44 	 *
     45 	 * @return VM signature of the class (may be <code>null</code>)
     46 	 */
     47 	public String getSignature();
     48 
     49 	/**
     50 	 * Returns the VM name of the superclass.
     51 	 *
     52 	 * @return VM name of the super class (may be <code>null</code>, i.e.
     53 	 *         <code>java/lang/Object</code>)
     54 	 */
     55 	public String getSuperName();
     56 
     57 	/**
     58 	 * Returns the VM names of implemented/extended interfaces.
     59 	 *
     60 	 * @return VM names of implemented/extended interfaces
     61 	 */
     62 	public String[] getInterfaceNames();
     63 
     64 	/**
     65 	 * Returns the VM name of the package this class belongs to.
     66 	 *
     67 	 * @return VM name of the package
     68 	 */
     69 	public String getPackageName();
     70 
     71 	/**
     72 	 * Returns the optional name of the corresponding source file.
     73 	 *
     74 	 * @return name of the corresponding source file
     75 	 */
     76 	public String getSourceFileName();
     77 
     78 	/**
     79 	 * Returns the methods included in this class.
     80 	 *
     81 	 * @return methods of this class
     82 	 */
     83 	public Collection<IMethodCoverage> getMethods();
     84 
     85 }