001/* 002 * SonarQube, open source software quality management tool. 003 * Copyright (C) 2008-2014 SonarSource 004 * mailto:contact AT sonarsource DOT com 005 * 006 * SonarQube is free software; you can redistribute it and/or 007 * modify it under the terms of the GNU Lesser General Public 008 * License as published by the Free Software Foundation; either 009 * version 3 of the License, or (at your option) any later version. 010 * 011 * SonarQube is distributed in the hope that it will be useful, 012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 014 * Lesser General Public License for more details. 015 * 016 * You should have received a copy of the GNU Lesser General Public License 017 * along with this program; if not, write to the Free Software Foundation, 018 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 019 */ 020package org.sonar.api.batch.sensor.coverage; 021 022import com.google.common.annotations.Beta; 023import org.sonar.api.measures.Metric; 024 025import static org.sonar.api.measures.CoreMetrics.*; 026 027/** 028 * Different coverage categories. 029 * @since 5.2 030 */ 031@Beta 032public enum CoverageType { 033 034 UNIT(LINES_TO_COVER, UNCOVERED_LINES, COVERAGE_LINE_HITS_DATA, CONDITIONS_TO_COVER, UNCOVERED_CONDITIONS, COVERED_CONDITIONS_BY_LINE, CONDITIONS_BY_LINE), 035 IT(IT_LINES_TO_COVER, IT_UNCOVERED_LINES, IT_COVERAGE_LINE_HITS_DATA, IT_CONDITIONS_TO_COVER, IT_UNCOVERED_CONDITIONS, IT_COVERED_CONDITIONS_BY_LINE, IT_CONDITIONS_BY_LINE), 036 OVERALL(OVERALL_LINES_TO_COVER, OVERALL_UNCOVERED_LINES, OVERALL_COVERAGE_LINE_HITS_DATA, OVERALL_CONDITIONS_TO_COVER, OVERALL_UNCOVERED_CONDITIONS, 037 OVERALL_COVERED_CONDITIONS_BY_LINE, OVERALL_CONDITIONS_BY_LINE); 038 039 private final Metric linesToCover; 040 private final Metric uncoveredLines; 041 private final Metric lineHitsData; 042 private final Metric conditionsToCover; 043 private final Metric uncoveredConditions; 044 private final Metric coveredConditionsByLine; 045 private final Metric conditionsByLine; 046 047 private CoverageType(Metric linesToCover, Metric uncoveredLines, Metric lineHitsData, Metric conditionsToCover, Metric uncoveredConditions, Metric coveredConditionsByLine, 048 Metric conditionsByLine) { 049 this.linesToCover = linesToCover; 050 this.uncoveredLines = uncoveredLines; 051 this.lineHitsData = lineHitsData; 052 this.conditionsToCover = conditionsToCover; 053 this.uncoveredConditions = uncoveredConditions; 054 this.coveredConditionsByLine = coveredConditionsByLine; 055 this.conditionsByLine = conditionsByLine; 056 } 057 058 public Metric linesToCover() { 059 return linesToCover; 060 } 061 062 public Metric uncoveredLines() { 063 return uncoveredLines; 064 } 065 066 public Metric lineHitsData() { 067 return lineHitsData; 068 } 069 070 public Metric conditionsToCover() { 071 return conditionsToCover; 072 } 073 074 public Metric uncoveredConditions() { 075 return uncoveredConditions; 076 } 077 078 public Metric coveredConditionsByLine() { 079 return coveredConditionsByLine; 080 } 081 082 public Metric conditionsByLine() { 083 return conditionsByLine; 084 } 085 086}