/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.lang.vf.rule;
import java.util.List;
import net.sourceforge.pmd.RuleContext;
import net.sourceforge.pmd.lang.LanguageRegistry;
import net.sourceforge.pmd.lang.ast.Node;
import net.sourceforge.pmd.lang.rule.AbstractRule;
import net.sourceforge.pmd.lang.rule.ImmutableLanguage;
import net.sourceforge.pmd.lang.vf.VfLanguageModule;
import net.sourceforge.pmd.lang.vf.ast.ASTArguments;
import net.sourceforge.pmd.lang.vf.ast.ASTAttribute;
import net.sourceforge.pmd.lang.vf.ast.ASTAttributeValue;
import net.sourceforge.pmd.lang.vf.ast.ASTCData;
import net.sourceforge.pmd.lang.vf.ast.ASTCompilationUnit;
import net.sourceforge.pmd.lang.vf.ast.ASTContent;
import net.sourceforge.pmd.lang.vf.ast.ASTDeclaration;
import net.sourceforge.pmd.lang.vf.ast.ASTDoctypeDeclaration;
import net.sourceforge.pmd.lang.vf.ast.ASTDoctypeExternalId;
import net.sourceforge.pmd.lang.vf.ast.ASTDotExpression;
import net.sourceforge.pmd.lang.vf.ast.ASTElExpression;
import net.sourceforge.pmd.lang.vf.ast.ASTElement;
import net.sourceforge.pmd.lang.vf.ast.ASTExpression;
import net.sourceforge.pmd.lang.vf.ast.ASTHtmlScript;
import net.sourceforge.pmd.lang.vf.ast.ASTIdentifier;
import net.sourceforge.pmd.lang.vf.ast.ASTLiteral;
import net.sourceforge.pmd.lang.vf.ast.ASTNegationExpression;
import net.sourceforge.pmd.lang.vf.ast.ASTText;
import net.sourceforge.pmd.lang.vf.ast.VfNode;
import net.sourceforge.pmd.lang.vf.ast.VfParserVisitor;
public abstract class AbstractVfRule extends AbstractRule implements VfParserVisitor, ImmutableLanguage {
public AbstractVfRule() {
super.setLanguage(LanguageRegistry.getLanguage(VfLanguageModule.NAME));
}
public void apply(List<? extends Node> nodes, RuleContext ctx) {
visitAll(nodes, ctx);
}
protected void visitAll(List<? extends Node> nodes, RuleContext ctx) {
for (Object element : nodes) {
if (element instanceof ASTCompilationUnit) {
ASTCompilationUnit node = (ASTCompilationUnit) element;
visit(node, ctx);
} else {
VfNode node = (VfNode) element;
visit(node, ctx);
}
}
}
public Object visit(VfNode node, Object data) {
node.childrenAccept(this, data);
return null;
}
public Object visit(ASTCompilationUnit node, Object data) {
return visit((VfNode) node, data);
}
public Object visit(ASTText node, Object data) {
return visit((VfNode) node, data);
}
public Object visit(ASTAttributeValue node, Object data) {
return visit((VfNode) node, data);
}
public Object visit(ASTElExpression node, Object data) {
return visit((VfNode) node, data);
}
public Object visit(ASTCData node, Object data) {
return visit((VfNode) node, data);
}
public Object visit(ASTElement node, Object data) {
return visit((VfNode) node, data);
}
public Object visit(ASTAttribute node, Object data) {
return visit((VfNode) node, data);
}
public Object visit(ASTDeclaration node, Object data) {
return visit((VfNode) node, data);
}
public Object visit(ASTDoctypeDeclaration node, Object data) {
return visit((VfNode) node, data);
}
public Object visit(ASTDoctypeExternalId node, Object data) {
return visit((VfNode) node, data);
}
public Object visit(ASTHtmlScript node, Object data) {
return visit((VfNode) node, data);
}
public Object visit(ASTLiteral node, Object data) {
return visit((VfNode) node, data);
}
public Object visit(ASTIdentifier node, Object data) {
return visit((VfNode) node, data);
}
public Object visit(ASTExpression node, Object data) {
return visit((VfNode) node, data);
}
public Object visit(ASTArguments node, Object data) {
return visit((VfNode) node, data);
}
public Object visit(ASTDotExpression node, Object data) {
return visit((VfNode) node, data);
}
public Object visit(ASTContent node, Object data) {
return visit((VfNode) node, data);
}
public Object visit(ASTNegationExpression node, Object data) {
return visit((VfNode) node, data);
}
}