/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.uff.ic.oceano.core.tools.metrics.extractors.java;
import br.uff.ic.oceano.core.tools.metrics.MetricException;
import br.uff.ic.oceano.core.model.MetricValue;
import br.uff.ic.oceano.core.model.Revision;
import br.uff.ic.oceano.core.tools.metrics.extractors.AbstractMetricExtractor;
import br.uff.ic.oceano.core.tools.revision.JavaRevisionTool;
import br.uff.ic.oceano.ostra.controle.Constantes;
import br.uff.ic.oceano.core.tools.revision.RevisionUtil;
import java.io.File;
import javancss.Javancss;
/**
* refactored by dheraclio
*
* @author DanCastellani
*/
public class LinesOfCodeTotalExtractorJava extends AbstractMetricExtractor {
private JavaRevisionTool revTool = new JavaRevisionTool();
public LinesOfCodeTotalExtractorJava() {
}
public MetricValue extractMetric(Revision revision) throws MetricException {
try {
double sumLoc = 0;
for (String filePath : revTool.getSourceFiles(revision)) {
Double classLoc = extractLOC(revision, filePath).getDoubleValue();
sumLoc += classLoc;
}
return createMetricValue(revision, sumLoc);
} catch (Exception ex) {
throw new MetricException(ex);
}
}
@Override
public MetricValue extractMetric(Revision revision, String path) throws MetricException {
return extractMetric(revision);
}
private MetricValue extractLOC(Revision revision, String path) throws MetricException {
final Javancss javancss = new Javancss(new File(path));
return createMetricValue(revision, javancss.getLOC());
}
}