/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package net.sourceforge.pmd.renderers; import java.io.IOException; import java.io.Writer; import java.util.Iterator; import net.sourceforge.pmd.RuleViolation; /** * Renderer to GNU Emacs parsable format. */ public class EmacsRenderer extends AbstractIncrementingRenderer { public static final String NAME = "emacs"; protected static final String EOL = System.getProperty("line.separator", "\n"); public EmacsRenderer() { super(NAME, "GNU Emacs integration."); } @Override public String defaultFileExtension() { return "emacs"; } /** * {@inheritDoc} */ @Override public void renderFileViolations(Iterator<RuleViolation> violations) throws IOException { Writer writer = getWriter(); StringBuilder buf = new StringBuilder(); while (violations.hasNext()) { RuleViolation rv = violations.next(); buf.setLength(0); buf.append(rv.getFilename()); buf.append(':').append(Integer.toString(rv.getBeginLine())); buf.append(": ").append(rv.getDescription()).append(EOL); writer.write(buf.toString()); } } }