com.undefinedlabs.scope.coverage.CoverableSourceCodeAnalyzer Maven / Gradle / Ivy
package com.undefinedlabs.scope.coverage;
import com.undefinedlabs.scope.coverage.utils.CoverageAnalyzerUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
public enum CoverableSourceCodeAnalyzer {
INSTANCE;
public CoverageSourceCode getCoverableSourceCode(final String className) {
final List allLines =
CoverageAnalyzerUtils.INSTANCE.buildAllLinesPerClassName(className);
final Integer firstLine = allLines.get(0);
final Integer lastLine = allLines.get(allLines.size() - 1);
final Map coverageLineMap = new HashMap<>();
for (final Integer line : allLines) {
coverageLineMap.put(line, new CoverageLine(CoverageLineStatus.NOT_COVERED, 0));
}
return new CoverageSourceCode(className, firstLine, lastLine, coverageLineMap);
}
public CoverableSourceCodeReport getCoverableSourceCodes(final Set classNames) {
final List coverageSourceCodes = new ArrayList<>();
for (final String className : classNames) {
coverageSourceCodes.add(getCoverableSourceCode(className));
}
return new CoverableSourceCodeReport(coverageSourceCodes);
}
}