X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=common%2Fcheckstyle-logging%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fcheckstyle%2FLoggerFactoryClassParameterCheck.java;h=b3812f8ae01709818c6b2a848928045ff19ea220;hb=refs%2Fchanges%2F75%2F40975%2F3;hp=8007aecdf5bb1775517d8268a0c333b1aa8b2ccb;hpb=551aed5d43593dc1f0e367dbe08ab8550c6485d2;p=yangtools.git diff --git a/common/checkstyle-logging/src/main/java/org/opendaylight/yangtools/checkstyle/LoggerFactoryClassParameterCheck.java b/common/checkstyle-logging/src/main/java/org/opendaylight/yangtools/checkstyle/LoggerFactoryClassParameterCheck.java index 8007aecdf5..b3812f8ae0 100644 --- a/common/checkstyle-logging/src/main/java/org/opendaylight/yangtools/checkstyle/LoggerFactoryClassParameterCheck.java +++ b/common/checkstyle-logging/src/main/java/org/opendaylight/yangtools/checkstyle/LoggerFactoryClassParameterCheck.java @@ -8,30 +8,53 @@ package org.opendaylight.yangtools.checkstyle; -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 LoggerFactoryClassParameterCheck extends Check { +public class LoggerFactoryClassParameterCheck extends AbstractCheck { private static final String LOG_MESSAGE = "LoggerFactory.getLogger Class argument is incorrect."; private static final String METHOD_NAME = "LoggerFactory.getLogger"; @Override public int[] getDefaultTokens() { - return new int[]{TokenTypes.METHOD_CALL}; + return new int[] { TokenTypes.METHOD_CALL }; } @Override - public void visitToken(DetailAST aAST) { - final String methodName = CheckLoggingUtil.getMethodName(aAST); - if(methodName.equals(METHOD_NAME)) { - final String className = CheckLoggingUtil.getClassName(aAST); - final String parameter = aAST.findFirstToken(TokenTypes.ELIST).getFirstChild().getFirstChild().getFirstChild().getText(); - if(!parameter.equals(className)) { - log(aAST.getLineNo(), LOG_MESSAGE); + public void visitToken(DetailAST ast) { + final String methodName = CheckLoggingUtil.getMethodName(ast); + if (methodName.equals(METHOD_NAME)) { + final String className = CheckLoggingUtil.getClassName(ast); + DetailAST findFirstToken = ast.findFirstToken(TokenTypes.ELIST); + if (findFirstToken == null) { + logError(ast, className); + return; + } + DetailAST childToken = findFirstToken.getFirstChild(); + if (childToken == null) { + logError(ast, className); + return; + } + childToken = childToken.getFirstChild(); + if (childToken == null) { + logError(ast, className); + return; + } + childToken = childToken.getFirstChild(); + if (childToken == null) { + logError(ast, className); + return; + } + final String token = childToken.getText(); + if (!token.equals(className)) { + log(ast.getLineNo(), LOG_MESSAGE); } } } + protected void logError(DetailAST ast, String className) { + log(ast.getLineNo(), String.format("Invalid parameter in \"getLogger\" method call in class: %s", className)); + } }