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

com.cflint.plugins.core.NestedCFOutput Maven / Gradle / Ivy

Go to download

A static code analysis tool for ColdFusion (in the spirit of FindBugs and Lint). With CFLint, you are able to analyze your ColdFusion code base for code violations.

There is a newer version: 1.5.0
Show newest version
package com.cflint.plugins.core;

import com.cflint.BugList;
import com.cflint.plugins.CFLintScannerAdapter;
import com.cflint.plugins.Context;
import com.cflint.tools.CFTool;

import net.htmlparser.jericho.Element;

public class NestedCFOutput extends CFLintScannerAdapter {

	public static final String CFOUTPUT = "cfoutput";

	@Override
	public void element(final Element element, final Context context, final BugList bugs) {
		if (element.getName().equals(CFOUTPUT)) {
			final Element parent = CFTool.getNamedParent(element, CFOUTPUT);
			if (parent != null) {
				if (parent.getAttributeValue("group") == null && anyContainingCFOutputHasQuery(parent)) {
					element.getSource().getRow(element.getBegin());
					element.getSource().getColumn(element.getBegin());
					context.addMessage("NESTED_CFOUTPUT", "");
				}
			}
		}
	}

	final boolean anyContainingCFOutputHasQuery(final Element element) {
		if (element == null) {
			return false;
		}
		if (element.getAttributeValue("query") != null) {
			return true;
		}
		return anyContainingCFOutputHasQuery(CFTool.getNamedParent(element, CFOUTPUT));
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy