import static org.opendaylight.yangtools.checkstyle.CheckLoggingUtil.LOGGER_TYPE_FULL_NAME;
import static org.opendaylight.yangtools.checkstyle.CheckLoggingUtil.LOGGER_TYPE_NAME;
-import com.puppycrawl.tools.checkstyle.api.Check;
+import com.puppycrawl.tools.checkstyle.api.AbstractCheck;
import com.puppycrawl.tools.checkstyle.api.DetailAST;
import com.puppycrawl.tools.checkstyle.api.TokenTypes;
-public class LoggerMustBeSlf4jCheck extends Check {
+public class LoggerMustBeSlf4jCheck extends AbstractCheck {
private static final String LOG_MESSAGE = "Logger must be slf4j.";
private static final String SLF4J = "slf4j";
+ private static final int[] TOKENS = { TokenTypes.VARIABLE_DEF, TokenTypes.IMPORT };
@Override
public int[] getDefaultTokens() {
- return new int[]{TokenTypes.VARIABLE_DEF, TokenTypes.IMPORT};
+ return TOKENS;
}
@Override
- public void visitToken(DetailAST aAST) {
- if(aAST.getType() == TokenTypes.VARIABLE_DEF) {
- final String typeName = CheckLoggingUtil.getTypeName(aAST);
- if (CheckLoggingUtil.isAFieldVariable(aAST) && typeName.contains("." + LOGGER_TYPE_NAME)) {
- if(!typeName.equals(LOGGER_TYPE_FULL_NAME)) {
- log(aAST.getLineNo(), LOG_MESSAGE);
+ public int[] getAcceptableTokens() {
+ return TOKENS;
+ }
+
+ @Override
+ public int[] getRequiredTokens() {
+ return TOKENS;
+ }
+
+ @Override
+ public void visitToken(final DetailAST ast) {
+ if (ast.getType() == TokenTypes.VARIABLE_DEF) {
+ if (CheckLoggingUtil.isAFieldVariable(ast)) {
+ final String typeName = CheckLoggingUtil.getTypeName(ast);
+ if (typeName.contains("." + LOGGER_TYPE_NAME) && !typeName.equals(LOGGER_TYPE_FULL_NAME)) {
+ log(ast.getLineNo(), LOG_MESSAGE);
}
}
- } else if(aAST.getType() == TokenTypes.IMPORT) {
- final String importType = aAST.getFirstChild().findFirstToken(TokenTypes.IDENT).getText();
- if(importType.equals(CheckLoggingUtil.LOGGER_TYPE_NAME)) {
- final String importIdent = aAST.getFirstChild().getFirstChild().getLastChild().getText();
- if(!importIdent.equals(SLF4J)) {
- log(aAST.getLineNo(), LOG_MESSAGE);
- }
+ } else if (ast.getType() == TokenTypes.IMPORT) {
+ final DetailAST typeToken = ast.getFirstChild().findFirstToken(TokenTypes.IDENT);
+ if (typeToken != null) {
+ final String importType = typeToken.getText();
+ if (CheckLoggingUtil.LOGGER_TYPE_NAME.equals(importType)) {
+ final String importIdent = ast.getFirstChild().getFirstChild().getLastChild().getText();
+ if (!importIdent.equals(SLF4J)) {
+ log(ast.getLineNo(), LOG_MESSAGE);
+ }
+ }
}
}
}