All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sourceforge.pmd.lang.jsp.rule.AbstractJspRule Maven / Gradle / Ivy

There is a newer version: 7.9.0
Show newest version
/**
 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
 */
package net.sourceforge.pmd.lang.jsp.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.jsp.JspLanguageModule;
import net.sourceforge.pmd.lang.jsp.ast.ASTAttribute;
import net.sourceforge.pmd.lang.jsp.ast.ASTAttributeValue;
import net.sourceforge.pmd.lang.jsp.ast.ASTCData;
import net.sourceforge.pmd.lang.jsp.ast.ASTCommentTag;
import net.sourceforge.pmd.lang.jsp.ast.ASTCompilationUnit;
import net.sourceforge.pmd.lang.jsp.ast.ASTContent;
import net.sourceforge.pmd.lang.jsp.ast.ASTDeclaration;
import net.sourceforge.pmd.lang.jsp.ast.ASTDoctypeDeclaration;
import net.sourceforge.pmd.lang.jsp.ast.ASTDoctypeExternalId;
import net.sourceforge.pmd.lang.jsp.ast.ASTElExpression;
import net.sourceforge.pmd.lang.jsp.ast.ASTElement;
import net.sourceforge.pmd.lang.jsp.ast.ASTHtmlScript;
import net.sourceforge.pmd.lang.jsp.ast.ASTJspComment;
import net.sourceforge.pmd.lang.jsp.ast.ASTJspDeclaration;
import net.sourceforge.pmd.lang.jsp.ast.ASTJspDirective;
import net.sourceforge.pmd.lang.jsp.ast.ASTJspDirectiveAttribute;
import net.sourceforge.pmd.lang.jsp.ast.ASTJspExpression;
import net.sourceforge.pmd.lang.jsp.ast.ASTJspExpressionInAttribute;
import net.sourceforge.pmd.lang.jsp.ast.ASTJspScriptlet;
import net.sourceforge.pmd.lang.jsp.ast.ASTText;
import net.sourceforge.pmd.lang.jsp.ast.ASTUnparsedText;
import net.sourceforge.pmd.lang.jsp.ast.ASTValueBinding;
import net.sourceforge.pmd.lang.jsp.ast.JspNode;
import net.sourceforge.pmd.lang.jsp.ast.JspParserVisitor;
import net.sourceforge.pmd.lang.rule.AbstractRule;
import net.sourceforge.pmd.lang.rule.ImmutableLanguage;

public abstract class AbstractJspRule extends AbstractRule implements JspParserVisitor, ImmutableLanguage {
    
    public AbstractJspRule() {
	super.setLanguage(LanguageRegistry.getLanguage(JspLanguageModule.NAME));
    }

    @Override
    public void setUsesTypeResolution() {
	// No Type resolution for JSP rules?
    }

    public void apply(List nodes, RuleContext ctx) {
	visitAll(nodes, ctx);
    }

    protected void visitAll(List nodes, RuleContext ctx) {
	for (Object element : nodes) {
	    JspNode node = (JspNode) element;
	    visit(node, ctx);
	}
    }

    //
    // The following APIs are identical to those in JspParserVisitorAdapter.
    // Due to Java single inheritance, it preferred to extend from the more
    // complex Rule base class instead of from relatively simple Visitor.
    //

    public Object visit(JspNode node, Object data) {
	node.childrenAccept(this, data);
	return null;
    }

    public Object visit(ASTCompilationUnit node, Object data) {
	return visit((JspNode) node, data);
    }

    public Object visit(ASTContent node, Object data) {
	return visit((JspNode) node, data);
    }

    public Object visit(ASTJspDirective node, Object data) {
	return visit((JspNode) node, data);
    }

    public Object visit(ASTJspDirectiveAttribute node, Object data) {
	return visit((JspNode) node, data);
    }

    public Object visit(ASTJspScriptlet node, Object data) {
	return visit((JspNode) node, data);
    }

    public Object visit(ASTJspExpression node, Object data) {
	return visit((JspNode) node, data);
    }

    public Object visit(ASTJspDeclaration node, Object data) {
	return visit((JspNode) node, data);
    }

    public Object visit(ASTJspComment node, Object data) {
	return visit((JspNode) node, data);
    }

    public Object visit(ASTText node, Object data) {
	return visit((JspNode) node, data);
    }

    public Object visit(ASTUnparsedText node, Object data) {
	return visit((JspNode) node, data);
    }

    public Object visit(ASTElExpression node, Object data) {
	return visit((JspNode) node, data);
    }

    public Object visit(ASTValueBinding node, Object data) {
	return visit((JspNode) node, data);
    }

    public Object visit(ASTCData node, Object data) {
	return visit((JspNode) node, data);
    }

    public Object visit(ASTElement node, Object data) {
	return visit((JspNode) node, data);
    }

    public Object visit(ASTAttribute node, Object data) {
	return visit((JspNode) node, data);
    }

    public Object visit(ASTAttributeValue node, Object data) {
	return visit((JspNode) node, data);
    }

    public Object visit(ASTJspExpressionInAttribute node, Object data) {
	return visit((JspNode) node, data);
    }

    public Object visit(ASTCommentTag node, Object data) {
	return visit((JspNode) node, data);
    }

    public Object visit(ASTDeclaration node, Object data) {
	return visit((JspNode) node, data);
    }

    public Object visit(ASTDoctypeDeclaration node, Object data) {
	return visit((JspNode) node, data);
    }

    public Object visit(ASTDoctypeExternalId node, Object data) {
	return visit((JspNode) node, data);
    }

    public Object visit(ASTHtmlScript node, Object data) {
	return visit((JspNode) node, data);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy