2 * Copyright (c) 2016 Red Hat, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.yangtools.checkstyle;
10 import com.puppycrawl.tools.checkstyle.api.AbstractCheck;
11 import com.puppycrawl.tools.checkstyle.api.DetailAST;
12 import com.puppycrawl.tools.checkstyle.api.TokenTypes;
13 import java.util.Optional;
15 public abstract class AbstractLogMessageCheck extends AbstractCheck {
16 private static final int[] TOKENS = { TokenTypes.METHOD_CALL };
19 public int[] getDefaultTokens() {
24 public int[] getAcceptableTokens() {
29 public int[] getRequiredTokens() {
34 public void visitToken(final DetailAST ast) {
35 String methodName = CheckLoggingUtil.getMethodName(ast);
36 if (CheckLoggingUtil.isLogMethod(methodName)) {
37 Optional<String> optLogMessage = getLogMessage(ast);
38 optLogMessage.ifPresent(logMessage -> visitLogMessage(ast, logMessage));
42 private static Optional<String> getLogMessage(DetailAST ast) {
43 ast = ast.findFirstToken(TokenTypes.ELIST);
45 ast = ast.getFirstChild();
47 ast = ast.getFirstChild();
49 if (ast.getType() == TokenTypes.STRING_LITERAL) {
50 return Optional.ofNullable(ast.getText());
55 return Optional.empty();
58 protected abstract void visitLogMessage(DetailAST ast, String logMessage);