se.bjurr.violations.lib.reports.Parser Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of violations-lib Show documentation
Show all versions of violations-lib Show documentation
Library for parsing report files from static code analyzis.
package se.bjurr.violations.lib.reports;
import static java.util.logging.Level.SEVERE;
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
import se.bjurr.violations.lib.model.Violation;
import se.bjurr.violations.lib.parsers.AndroidLintParser;
import se.bjurr.violations.lib.parsers.CLangParser;
import se.bjurr.violations.lib.parsers.CPDParser;
import se.bjurr.violations.lib.parsers.CPPCheckParser;
import se.bjurr.violations.lib.parsers.CSSLintParser;
import se.bjurr.violations.lib.parsers.CheckStyleParser;
import se.bjurr.violations.lib.parsers.CodeNarcParser;
import se.bjurr.violations.lib.parsers.CppLintParser;
import se.bjurr.violations.lib.parsers.DocFXParser;
import se.bjurr.violations.lib.parsers.FindbugsParser;
import se.bjurr.violations.lib.parsers.Flake8Parser;
import se.bjurr.violations.lib.parsers.FxCopParser;
import se.bjurr.violations.lib.parsers.GendarmeParser;
import se.bjurr.violations.lib.parsers.GoLintParser;
import se.bjurr.violations.lib.parsers.GoogleErrorProneParser;
import se.bjurr.violations.lib.parsers.JCReportParser;
import se.bjurr.violations.lib.parsers.JSHintParser;
import se.bjurr.violations.lib.parsers.KlocworkParser;
import se.bjurr.violations.lib.parsers.LintParser;
import se.bjurr.violations.lib.parsers.MyPyParser;
import se.bjurr.violations.lib.parsers.PCLintParser;
import se.bjurr.violations.lib.parsers.PMDParser;
import se.bjurr.violations.lib.parsers.PerlCriticParser;
import se.bjurr.violations.lib.parsers.PiTestParser;
import se.bjurr.violations.lib.parsers.PyDocStyleParser;
import se.bjurr.violations.lib.parsers.PyLintParser;
import se.bjurr.violations.lib.parsers.ResharperParser;
import se.bjurr.violations.lib.parsers.SbtScalacParser;
import se.bjurr.violations.lib.parsers.SimianParser;
import se.bjurr.violations.lib.parsers.StyleCopParser;
import se.bjurr.violations.lib.parsers.ViolationsParser;
import se.bjurr.violations.lib.parsers.XMLLintParser;
import se.bjurr.violations.lib.parsers.ZPTLintParser;
import se.bjurr.violations.lib.util.Utils;
public enum Parser {
ANDROIDLINT(new AndroidLintParser()), //
CHECKSTYLE(new CheckStyleParser()), //
CODENARC(new CodeNarcParser()), //
CLANG(new CLangParser()), //
CPD(new CPDParser()), //
CPPCHECK(new CPPCheckParser()), //
CPPLINT(new CppLintParser()), //
CSSLINT(new CSSLintParser()), //
FINDBUGS(new FindbugsParser()), //
FLAKE8(new Flake8Parser()), //
FXCOP(new FxCopParser()), //
GENDARME(new GendarmeParser()), //
JCREPORT(new JCReportParser()), //
JSHINT(new JSHintParser()), //
LINT(new LintParser()), //
KLOCWORK(new KlocworkParser()), //
MYPY(new MyPyParser()), //
GOLINT(new GoLintParser()), //
GOOGLEERRORPRONE(new GoogleErrorProneParser()), //
PERLCRITIC(new PerlCriticParser()), //
PITEST(new PiTestParser()), //
PMD(new PMDParser()), //
PYDOCSTYLE(new PyDocStyleParser()), //
PYLINT(new PyLintParser()), //
RESHARPER(new ResharperParser()), //
SBTSCALAC(new SbtScalacParser()), //
SIMIAN(new SimianParser()), //
STYLECOP(new StyleCopParser()), //
XMLLINT(new XMLLintParser()), //
ZPTLINT(new ZPTLintParser()), //
DOCFX(new DocFXParser()), //
PCLINT(new PCLintParser());
private static Logger LOG = Logger.getLogger(Parser.class.getSimpleName());
private transient ViolationsParser violationsParser;
private Parser(final ViolationsParser violationsParser) {
this.violationsParser = violationsParser;
}
public List findViolations(final List includedFiles) {
final List violations = new ArrayList<>();
for (final File file : includedFiles) {
try {
final String string = Utils.toString(new FileInputStream(file));
violations.addAll(violationsParser.parseReportOutput(string));
} catch (final Throwable e) {
LOG.log(SEVERE, "Error when parsing " + file.getAbsolutePath() + " as " + this.name(), e);
}
}
return violations;
}
public ViolationsParser getViolationsParser() {
return violationsParser;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy