View Javadoc

1   /**
2    * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3    */
4   package net.sourceforge.pmd.lang.java.rule.logging;
5   
6   import java.util.logging.Level;
7   
8   import net.sourceforge.pmd.lang.java.ast.ASTCompilationUnit;
9   
10  public class GuardLogStatementJavaUtilRule extends GuardLogStatementRule {
11  
12  	private static final String GUARD_METHOD_NAME = "isLoggable";
13  	
14  	// Override default constructor - this rule can't be configured
15  	public GuardLogStatementJavaUtilRule() {};
16  
17  	@Override
18  	public Object visit(ASTCompilationUnit unit, Object data) {
19  		if ( super.guardStmtByLogLevel.isEmpty() ) {
20  			super.guardStmtByLogLevel.put(formatLogLevelString(Level.FINEST), GUARD_METHOD_NAME);
21  			super.guardStmtByLogLevel.put(formatLogLevelString(Level.FINER), GUARD_METHOD_NAME);
22  			super.guardStmtByLogLevel.put(formatLogLevelString(Level.FINE), GUARD_METHOD_NAME);
23  			super.guardStmtByLogLevel.put(formatLogLevelString(Level.INFO), GUARD_METHOD_NAME);
24  			super.guardStmtByLogLevel.put(formatLogLevelString(Level.WARNING), GUARD_METHOD_NAME);
25  			super.guardStmtByLogLevel.put(formatLogLevelString(Level.SEVERE), GUARD_METHOD_NAME);
26  		}		
27  		return super.visit(unit,data);
28  	}
29  	
30  	private String formatLogLevelString(Level logLevel) {
31  		return "." + logLevel.toString().toLowerCase();
32  	}
33  }