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

Oliver Burn <[email protected]> Wed, 11 Aug 2010 20:30:39 +1000
Newsgroups gmane.comp.java.audit.checkstyle.user
Message-ID <[email protected]>
Hi,

Have a look at http://checkstyle.sourceforge.net/writingchecks.html. It is a
good guide on how to write checks.

Since you want to write a check that is for non-java files, you need to
subclass FileSetCheck<http://checkstyle.sourceforge.net/api/com/puppycrawl/tools/checkstyle/api/FileSetCheck.html>
.

Regards,
Oliver

On Fri, Aug 6, 2010 at 22:39, shrgh <[email protected]> wrote:

>
> 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
> _______________________________________________
> Checkstyle-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/checkstyle-user
>

------------------------------------------------------------------------------
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

_______________________________________________
Checkstyle-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/checkstyle-user