/* * Hibernate Search, full-text search for your domain model * * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.checkstyle.filters; import java.io.File; import com.puppycrawl.tools.checkstyle.api.AuditEvent; import com.puppycrawl.tools.checkstyle.api.Filter; /** * Allows disabling some rules for the test suite source. * * Any violation will be suppressed if it's generated by a source file * having {@code /src/test/java} included in its path and if the violation * message contains the keyword "[not required for tests]". * <p> * A SuppressionFilter is too generic, and requires per-module configuration. * * @author Sanne Grinovero */ public class ExcludeTestPackages implements Filter { private static final String SUB_PATH = File.separator + "src" + File.separator + "test" + File.separator + "java"; private static final String MESSAGE_DISABLE_KEYWORD = "[not required for tests]"; @Override public boolean accept(AuditEvent aEvent) { String fileName = aEvent.getFileName(); if ( fileName != null && fileName.contains( SUB_PATH ) ) { return acceptTestfileEvent( aEvent ); } return true; } private boolean acceptTestfileEvent(AuditEvent aEvent) { String message = aEvent.getMessage(); if ( message != null && message.contains( MESSAGE_DISABLE_KEYWORD ) ) { return false; } return true; } }