package pl.touk.sputnik.processor.pylint; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; import pl.touk.sputnik.configuration.Configuration; import pl.touk.sputnik.configuration.GeneralOption; import pl.touk.sputnik.processor.tools.externalprocess.ExternalProcessResultParser; import pl.touk.sputnik.processor.tools.externalprocess.ProcessorRunningExternalProcess; import pl.touk.sputnik.review.filter.FileFilter; import pl.touk.sputnik.review.filter.PythonFilter; import java.io.File; @Slf4j class PylintProcessor extends ProcessorRunningExternalProcess { private PylintExecutor pylintExecutor; private PylintResultParser pylintResultParser; PylintProcessor(Configuration configuration) { pylintExecutor = new PylintExecutor(configuration.getProperty(GeneralOption.PYLINT_RCFILE)); pylintResultParser = new PylintResultParser(); } @NotNull @Override public String getName() { return "Pylint"; } @Override public FileFilter getReviewFileFilter() { return new PythonFilter(); } @Override public ExternalProcessResultParser getParser() { return pylintResultParser; } @Override public String processFileAndDumpOutput(File fileToReview) { return pylintExecutor.runOnFile(fileToReview.getAbsolutePath()); } }