/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.lang.rule;
import net.sourceforge.pmd.Rule;
import net.sourceforge.pmd.RuleContext;
import net.sourceforge.pmd.lang.ast.Node;
/**
* This class handles of producing a Language specific RuleViolation and adding
* to a Report.
*/
public interface RuleViolationFactory {
/**
* Adds a violation to the report.
*
* @param ruleContext
* the RuleContext
* @param rule
* the rule
* @param node
* the node that produces the violation
* @param message
* specific message to put in the report
* @param args
* arguments to embed in the rule violation message
*/
void addViolation(RuleContext ruleContext, Rule rule, Node node, String message, Object[] args);
void addViolation(RuleContext ruleContext, Rule rule, Node node, String message, int beginLine, int endLine,
Object[] args);
}