cleanup (inspection "Java | Class structure | Utility class is not 'final'")
[idea/community.git] / platform / analysis-api / src / com / intellij / codeInspection / reference / RefUtil.java
1 // Copyright 2000-2020 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.
2 package com.intellij.codeInspection.reference;
3
4 import com.intellij.codeInsight.daemon.ImplicitUsageProvider;
5 import com.intellij.codeInspection.ex.EntryPointsManager;
6 import com.intellij.openapi.util.Comparing;
7 import com.intellij.psi.PsiElement;
8 import org.jetbrains.annotations.NotNull;
9 import org.jetbrains.annotations.Nullable;
10
11 import java.util.Collection;
12
13 /**
14  * Application component which provides utility methods for working with the reference
15  * graph.
16  *
17  * @author anna
18  */
19 public final class RefUtil {
20   private RefUtil() {}
21
22   public static boolean isImplicitUsage(@Nullable PsiElement element) {
23     if (element == null) {
24       return false;
25     }
26     for (ImplicitUsageProvider provider : ImplicitUsageProvider.EP_NAME.getExtensionList()) {
27       if (provider.isImplicitUsage(element)) return true;
28     }
29     return false;
30   }
31
32   public static boolean isImplicitRead(@Nullable PsiElement element) {
33     if (element == null) {
34       return false;
35     }
36     for (ImplicitUsageProvider provider : ImplicitUsageProvider.EP_NAME.getExtensionList()) {
37       if (provider.isImplicitRead(element)) return true;
38     }
39     return false;
40   }
41
42   public static boolean contains(RefEntity element, @NotNull Collection<? extends RefEntity> entities){
43     for (RefEntity refEntity : entities) {
44       if (Comparing.equal(refEntity, element)) {
45         return true;
46       }
47     }
48     return false;
49   }
50
51   public static boolean isImplicitWrite(@Nullable PsiElement element) {
52     if (element == null) {
53       return false;
54     }
55     for (ImplicitUsageProvider provider : ImplicitUsageProvider.EP_NAME.getExtensionList()) {
56       if (provider.isImplicitWrite(element)) return true;
57     }
58     return EntryPointsManager.getInstance(element.getProject()).isImplicitWrite(element);
59   }
60 }