Unable to add custom check for non-java files to Checker module

shrgh <[email protected]> Fri, 6 Aug 2010 05:39:25 -0700 (PDT)
Newsgroups gmane.comp.java.audit.checkstyle.user
Message-ID <[email protected]>
Hi,

I am trying to create a custom check for non-java files. 

This is my check:

package com.mycompany.checks;

import com.puppycrawl.tools.checkstyle.api.Check;

	public class EmptyLineCheck extends Check {

	private int maxLines = 0;

	public void setMaxLines(int maxLines) { 
		this.maxLines = maxLines; 
	}

	public int[] getDefaultTokens() {
		return new int[0];
	}

  	public void beginTree(DetailAST detailAst) {
		String[] lines = getLines();
		int count = 0;
		for (int i=0; i<lines.length; i++) {
			boolean blank = lines[i].trim().equals("");
			if(blank){
			   count++;		
			}
			else{
				if(count >= maxLines){
				    int l = i-count;
					log(l, "Too many empty lines: Line "+l);					
				}
			}
		}
	}

}


and my config file:

<module name="Checker">
	<module name="com.comcast.checks.EmptyLineCheck"/>
	
	
</module>


When this check is added as a submodule of TreeWalker module in the config
file, it works fine (for java files of course).

In order to apply it to non-java files, when I try to define it as a
submodule of Checker module (i.e outside the Treewalker), I am getting the
following exception:

Unable to create Checker: cannot initialize module
com.mycompany.checks.EmptyLineCheck - com.mycompany.checks.EmptyLineCheck is
not allowed as a child in Checker
com.puppycrawl.tools.checkstyle.api.CheckstyleException: cannot initialize
module com.mycompany.checks.EmptyLineCheck -
com.mycompany.checks.EmptyLineCheck is not allowed as a child in Checker
        at
com.puppycrawl.tools.checkstyle.Checker.setupChild(Checker.java:177)
        at
com.puppycrawl.tools.checkstyle.api.AutomaticBean.configure(Automatic
Bean.java:207)
        at com.puppycrawl.tools.checkstyle.Main.createChecker(Main.java:138)
        at com.puppycrawl.tools.checkstyle.Main.main(Main.java:115)
Caused by: com.puppycrawl.tools.checkstyle.api.CheckstyleException:
com.mycompany.
checks.EmptyLineCheck is not allowed as a child in Checker
        at
com.puppycrawl.tools.checkstyle.Checker.setupChild(Checker.java:171)

Is it not allowed to add custom modules directly to Checker module? If not,
how to add this module so that it can be used for any file?
I am a new user of checkstyle. Sorry if I am missing something basic here.
Thanks in advance


-- 
View this message in context: http://checkstyle.2069334.n4.nabble.com/Unable-to-add-custom-check-for-non-java-files-to-Checker-module-tp2316266p2316266.html
Sent from the CheckStyle - User mailing list archive at Nabble.com.

------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev