Conform to our own Checkstyle rules in checkstyle-logging utility
[yangtools.git] / common / checkstyle-logging / src / main / java / org / opendaylight / yangtools / checkstyle / LogMessageConcatenationCheck.java
index d725c451c7fbefd6629e8d862c9104ac090525d2..650a704c68ad02587c36140aefaffd953bb59ea0 100644 (file)
@@ -22,12 +22,17 @@ public class LogMessageConcatenationCheck extends Check {
     }
 
     @Override
-    public void visitToken(DetailAST aAST) {
-        final String methodName = CheckLoggingUtil.getMethodName(aAST);
-        if(CheckLoggingUtil.isLogMethod(methodName)) {
-            final String logMessage = aAST.findFirstToken(TokenTypes.ELIST).getFirstChild().getFirstChild().getText();
-            if(logMessage.contains("+")) {
-                log(aAST.getLineNo(), LOG_MESSAGE);
+    public void visitToken(DetailAST ast) {
+        final String methodName = CheckLoggingUtil.getMethodName(ast);
+        if (CheckLoggingUtil.isLogMethod(methodName)) {
+            DetailAST plus = ast.findFirstToken(TokenTypes.ELIST).getFirstChild().findFirstToken(TokenTypes.PLUS);
+            if (plus != null) {
+                while (plus.getChildCount(TokenTypes.PLUS) != 0) {
+                    plus = plus.findFirstToken(TokenTypes.PLUS);
+                }
+                if (plus.getChildCount(TokenTypes.STRING_LITERAL) != 2) {
+                    log(ast.getLineNo(), LOG_MESSAGE);
+                }
             }
         }
     }