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 {
18 public int[] getDefaultTokens() {
19 return new int[]{TokenTypes.METHOD_CALL};
23 public void visitToken(final DetailAST ast) {
24 String methodName = CheckLoggingUtil.getMethodName(ast);
25 if (CheckLoggingUtil.isLogMethod(methodName)) {
26 Optional<String> optLogMessage = getLogMessage(ast);
27 optLogMessage.ifPresent(logMessage -> visitLogMessage(ast, logMessage));
31 private static Optional<String> getLogMessage(DetailAST ast) {
32 ast = ast.findFirstToken(TokenTypes.ELIST);
34 ast = ast.getFirstChild();
36 ast = ast.getFirstChild();
38 if (ast.getType() == TokenTypes.STRING_LITERAL) {
39 return Optional.ofNullable(ast.getText());
44 return Optional.empty();
47 protected abstract void visitLogMessage(DetailAST ast, String logMessage);