mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IG: introduce LoggingUtils
This commit is contained in:
+21
@@ -0,0 +1,21 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.siyeh.ig.psiutils;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Bas Leijdekkers
|
||||
*/
|
||||
public class LoggingUtils {
|
||||
|
||||
public static final String JAVA_LOGGING = "java.util.logging.Logger";
|
||||
public static final String SLF4J = "org.slf4j.Logger";
|
||||
public static final String COMMONS_LOGGING = "org.apache.commons.logging.Log";
|
||||
public static final String LOG4J = "org.apache.log4j.Logger";
|
||||
public static final String LOG4J2 = "org.apache.logging.log4j.Logger";
|
||||
|
||||
public static final List<String> DEFAULT_LOGGERS = Arrays.asList(JAVA_LOGGING, SLF4J, COMMONS_LOGGING, LOG4J, LOG4J2);
|
||||
|
||||
private LoggingUtils() {}
|
||||
}
|
||||
+5
-10
@@ -17,10 +17,12 @@ package com.siyeh.ig.logging;
|
||||
|
||||
import com.intellij.openapi.util.InvalidDataException;
|
||||
import com.intellij.openapi.util.WriteExternalException;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.*;
|
||||
import com.siyeh.InspectionGadgetsBundle;
|
||||
import com.siyeh.ig.BaseInspection;
|
||||
import com.siyeh.ig.BaseInspectionVisitor;
|
||||
import com.siyeh.ig.psiutils.LoggingUtils;
|
||||
import com.siyeh.ig.ui.UiUtils;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
@@ -37,11 +39,7 @@ public class ClassWithMultipleLoggersInspection extends BaseInspection {
|
||||
* @noinspection PublicField
|
||||
*/
|
||||
@NonNls
|
||||
public String loggerNamesString = "java.util.logging.Logger" + ',' +
|
||||
"org.slf4j.Logger" + ',' +
|
||||
"org.apache.commons.logging.Log" + ',' +
|
||||
"org.apache.log4j.Logger" + ',' +
|
||||
"org.apache.logging.log4j.Logger";
|
||||
public String loggerNamesString = StringUtil.join(LoggingUtils.DEFAULT_LOGGERS, ",");
|
||||
|
||||
public ClassWithMultipleLoggersInspection() {
|
||||
parseString(loggerNamesString, loggerNames);
|
||||
@@ -88,9 +86,7 @@ public class ClassWithMultipleLoggersInspection extends BaseInspection {
|
||||
|
||||
@Override
|
||||
public void visitClass(@NotNull PsiClass aClass) {
|
||||
//no recursion to avoid drilldown
|
||||
if (aClass.isInterface() || aClass.isEnum() ||
|
||||
aClass.isAnnotationType()) {
|
||||
if (aClass.isInterface() || aClass.isEnum() || aClass.isAnnotationType()) {
|
||||
return;
|
||||
}
|
||||
if (aClass instanceof PsiTypeParameter) {
|
||||
@@ -100,8 +96,7 @@ public class ClassWithMultipleLoggersInspection extends BaseInspection {
|
||||
return;
|
||||
}
|
||||
int numLoggers = 0;
|
||||
final PsiField[] fields = aClass.getFields();
|
||||
for (PsiField field : fields) {
|
||||
for (PsiField field : aClass.getFields()) {
|
||||
if (isLogger(field)) {
|
||||
numLoggers++;
|
||||
}
|
||||
|
||||
+3
-5
@@ -19,6 +19,7 @@ import com.intellij.codeInsight.AnnotationUtil;
|
||||
import com.intellij.codeInspection.util.SpecialAnnotationsUtil;
|
||||
import com.intellij.openapi.util.InvalidDataException;
|
||||
import com.intellij.openapi.util.WriteExternalException;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.InheritanceUtil;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
@@ -28,6 +29,7 @@ import com.intellij.util.ui.CheckBox;
|
||||
import com.siyeh.InspectionGadgetsBundle;
|
||||
import com.siyeh.ig.BaseInspection;
|
||||
import com.siyeh.ig.BaseInspectionVisitor;
|
||||
import com.siyeh.ig.psiutils.LoggingUtils;
|
||||
import com.siyeh.ig.ui.ExternalizableStringSet;
|
||||
import com.siyeh.ig.ui.UiUtils;
|
||||
import org.jdom.Element;
|
||||
@@ -47,11 +49,7 @@ public class ClassWithoutLoggerInspection extends BaseInspection {
|
||||
* @noinspection PublicField
|
||||
*/
|
||||
@NonNls
|
||||
public String loggerNamesString = "java.util.logging.Logger" + ',' +
|
||||
"org.slf4j.Logger" + ',' +
|
||||
"org.apache.commons.logging.Log" + ',' +
|
||||
"org.apache.log4j.Logger" + ',' +
|
||||
"org.apache.logging.log4j.Logger";
|
||||
public String loggerNamesString = StringUtil.join(LoggingUtils.DEFAULT_LOGGERS, ",");
|
||||
/**
|
||||
* @noinspection PublicField
|
||||
*/
|
||||
|
||||
+7
-6
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2008-2017 Bas Leijdekkers
|
||||
* Copyright 2008-2019 Bas Leijdekkers
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -31,6 +31,7 @@ import com.siyeh.InspectionGadgetsBundle;
|
||||
import com.siyeh.ig.BaseInspection;
|
||||
import com.siyeh.ig.BaseInspectionVisitor;
|
||||
import com.siyeh.ig.InspectionGadgetsFix;
|
||||
import com.siyeh.ig.psiutils.LoggingUtils;
|
||||
import com.siyeh.ig.psiutils.ParenthesesUtils;
|
||||
import com.siyeh.ig.psiutils.TypeUtils;
|
||||
import com.siyeh.ig.ui.TextField;
|
||||
@@ -50,7 +51,7 @@ public class LogStatementGuardedByLogConditionInspection extends BaseInspection
|
||||
final List<String> logMethodNameList = new ArrayList<>();
|
||||
final List<String> logConditionMethodNameList = new ArrayList<>();
|
||||
@SuppressWarnings({"PublicField"})
|
||||
public String loggerClassName = "java.util.logging.Logger";
|
||||
public String loggerClassName = LoggingUtils.JAVA_LOGGING;
|
||||
@NonNls
|
||||
@SuppressWarnings({"PublicField"})
|
||||
public String loggerMethodAndconditionMethodNames =
|
||||
@@ -61,7 +62,7 @@ public class LogStatementGuardedByLogConditionInspection extends BaseInspection
|
||||
public boolean flagAllUnguarded = false;
|
||||
|
||||
public LogStatementGuardedByLogConditionInspection() {
|
||||
parseString(this.loggerMethodAndconditionMethodNames, this.logMethodNameList, this.logConditionMethodNameList);
|
||||
parseString(loggerMethodAndconditionMethodNames, logMethodNameList, logConditionMethodNameList);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -137,12 +138,12 @@ public class LogStatementGuardedByLogConditionInspection extends BaseInspection
|
||||
return;
|
||||
}
|
||||
PsiStatement previousStatement = PsiTreeUtil.getPrevSiblingOfType(statement, PsiStatement.class);
|
||||
while (previousStatement != null && isSameLogMethodCall(previousStatement, referenceName)) {
|
||||
while (isSameLogMethodCall(previousStatement, referenceName)) {
|
||||
logStatements.add(0, previousStatement);
|
||||
previousStatement = PsiTreeUtil.getPrevSiblingOfType(previousStatement, PsiStatement.class);
|
||||
}
|
||||
PsiStatement nextStatement = PsiTreeUtil.getNextSiblingOfType(statement, PsiStatement.class);
|
||||
while (nextStatement != null && isSameLogMethodCall(nextStatement, referenceName)) {
|
||||
while (isSameLogMethodCall(nextStatement, referenceName)) {
|
||||
logStatements.add(nextStatement);
|
||||
nextStatement = PsiTreeUtil.getNextSiblingOfType(nextStatement, PsiStatement.class);
|
||||
}
|
||||
@@ -199,7 +200,7 @@ public class LogStatementGuardedByLogConditionInspection extends BaseInspection
|
||||
return false;
|
||||
}
|
||||
final PsiExpression qualifier = methodExpression.getQualifierExpression();
|
||||
return qualifier != null && TypeUtils.expressionHasTypeOrSubtype(qualifier, loggerClassName);
|
||||
return TypeUtils.expressionHasTypeOrSubtype(qualifier, loggerClassName);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
-5
@@ -17,12 +17,14 @@ package com.siyeh.ig.logging;
|
||||
|
||||
import com.intellij.openapi.util.InvalidDataException;
|
||||
import com.intellij.openapi.util.WriteExternalException;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.*;
|
||||
import com.siyeh.InspectionGadgetsBundle;
|
||||
import com.siyeh.ig.BaseInspection;
|
||||
import com.siyeh.ig.BaseInspectionVisitor;
|
||||
import com.siyeh.ig.InspectionGadgetsFix;
|
||||
import com.siyeh.ig.fixes.MakeFieldStaticFinalFix;
|
||||
import com.siyeh.ig.psiutils.LoggingUtils;
|
||||
import com.siyeh.ig.ui.UiUtils;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -35,11 +37,7 @@ public class NonStaticFinalLoggerInspection extends BaseInspection {
|
||||
|
||||
protected final List<String> loggerClassNames = new ArrayList<>();
|
||||
@SuppressWarnings("PublicField")
|
||||
public String loggerClassName = "java.util.logging.Logger" + ',' +
|
||||
"org.slf4j.Logger" + ',' +
|
||||
"org.apache.commons.logging.Log" + ',' +
|
||||
"org.apache.log4j.Logger" + ',' +
|
||||
"org.apache.logging.log4j.Logger";
|
||||
public String loggerClassName = StringUtil.join(LoggingUtils.DEFAULT_LOGGERS, ",");
|
||||
|
||||
public NonStaticFinalLoggerInspection() {
|
||||
parseString(loggerClassName, loggerClassNames);
|
||||
|
||||
+5
-7
@@ -17,11 +17,13 @@ package com.siyeh.ig.logging;
|
||||
|
||||
import com.intellij.openapi.util.InvalidDataException;
|
||||
import com.intellij.openapi.util.WriteExternalException;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.PropertyUtil;
|
||||
import com.siyeh.InspectionGadgetsBundle;
|
||||
import com.siyeh.ig.BaseInspection;
|
||||
import com.siyeh.ig.BaseInspectionVisitor;
|
||||
import com.siyeh.ig.psiutils.LoggingUtils;
|
||||
import com.siyeh.ig.ui.UiUtils;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -34,11 +36,7 @@ public class PublicMethodWithoutLoggingInspection extends BaseInspection {
|
||||
|
||||
final List<String> loggerClassNames = new ArrayList<>();
|
||||
@SuppressWarnings("PublicField")
|
||||
public String loggerClassName = "java.util.logging.Logger" + ',' +
|
||||
"org.slf4j.Logger" + ',' +
|
||||
"org.apache.commons.logging.Log" + ',' +
|
||||
"org.apache.log4j.Logger" + ',' +
|
||||
"org.apache.logging.log4j.Logger";
|
||||
public String loggerClassName = StringUtil.join(LoggingUtils.DEFAULT_LOGGERS, ",");
|
||||
|
||||
public PublicMethodWithoutLoggingInspection() {
|
||||
parseString(loggerClassName, loggerClassNames);
|
||||
@@ -108,7 +106,7 @@ public class PublicMethodWithoutLoggingInspection extends BaseInspection {
|
||||
}
|
||||
|
||||
private boolean containsLoggingCall(PsiCodeBlock block) {
|
||||
ContainsLoggingCallVisitor visitor = new ContainsLoggingCallVisitor();
|
||||
final ContainsLoggingCallVisitor visitor = new ContainsLoggingCallVisitor();
|
||||
block.accept(visitor);
|
||||
return visitor.containsLoggingCall();
|
||||
}
|
||||
@@ -148,7 +146,7 @@ public class PublicMethodWithoutLoggingInspection extends BaseInspection {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean containsLoggingCall() {
|
||||
boolean containsLoggingCall() {
|
||||
return containsLoggingCall;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user