package com.mycompany.checks; import java.io.File; import com.puppycrawl.tools.checkstyle.api.*; /** * An example for a user provided FileSetCheck, * checks that the number of files does not excced a certain limit. * * This Class is provided for educational purposes only, we do not * consider it useful to check your production code. * * @author lkuehne */ public class LimitImplementationFiles extends AbstractFileSetCheck { /** * the maximium number of implementation files, * default is 100. */ private int max = 100; /** * Give user a chance to configure max in the * config file. * * @param aMax the user specified maximum. */ public void setMax(int aMax) { max = aMax; } /** * @see FileSetCheck */ public void process(File[] files) { if (files != null && files.length > max) { // figure out the file that contains the error final String path = files[max].getPath(); // message collector is used to collect error messages, // needs to be reset before starting to collect error messages // for a file. getMessageCollector().reset(); // message dispatcher is used to fire AuditEvents MessageDispatcher dispatcher = getMessageDispatcher(); // signal start of file to AuditListeners dispatcher.fireFileStarted(path); // log the message log(0, "max.files.exceeded", new Integer(max)); // you can call log() multiple times to flag multiple // errors in the same file // fire the errors for this file to the AuditListeners fireErrors(path); // signal end of file to AuditListeners dispatcher.fireFileFinished(path); } } }