2525import consulo .language .editor .inspection .localize .InspectionLocalize ;
2626import consulo .language .psi .PsiElementVisitor ;
2727import consulo .language .psi .util .PsiTreeUtil ;
28- import org .jetbrains .annotations .Nls ;
29-
28+ import consulo .localize .LocalizeValue ;
3029import jakarta .annotation .Nonnull ;
3130
3231@ ExtensionImpl
3332public class NonFinalGuardInspection extends BaseJavaLocalInspectionTool {
33+ @ Nonnull
34+ @ Override
35+ public LocalizeValue getGroupDisplayName () {
36+ return InspectionLocalize .groupNamesConcurrencyAnnotationIssues ();
37+ }
3438
35- @ Override
36- @ Nonnull
37- public String getGroupDisplayName () {
38- return InspectionLocalize .groupNamesConcurrencyAnnotationIssues ().get ();
39- }
40-
41- @ Override
42- @ Nls
43- @ Nonnull
44- public String getDisplayName () {
45- return "Non-final @GuardedBy field" ;
46- }
39+ @ Nonnull
40+ @ Override
41+ public LocalizeValue getDisplayName () {
42+ return LocalizeValue .localizeTODO ("Non-final @GuardedBy field" );
43+ }
4744
48- @ Override
49- @ Nonnull
50- public String getShortName () {
51- return "NonFinalGuard" ;
52- }
45+ @ Override
46+ @ Nonnull
47+ public String getShortName () {
48+ return "NonFinalGuard" ;
49+ }
5350
5451
55- @ Override
56- @ Nonnull
57- public PsiElementVisitor buildVisitorImpl (@ Nonnull ProblemsHolder holder ,
58- boolean isOnTheFly ,
59- LocalInspectionToolSession session ,
60- Object state ) {
61- return new Visitor (holder );
62- }
52+ @ Override
53+ @ Nonnull
54+ public PsiElementVisitor buildVisitorImpl (
55+ @ Nonnull ProblemsHolder holder ,
56+ boolean isOnTheFly ,
57+ LocalInspectionToolSession session ,
58+ Object state
59+ ) {
60+ return new Visitor (holder );
61+ }
6362
64- private static class Visitor extends JavaElementVisitor {
65- private final ProblemsHolder myHolder ;
63+ private static class Visitor extends JavaElementVisitor {
64+ private final ProblemsHolder myHolder ;
6665
67- public Visitor (ProblemsHolder holder ) {
66+ public Visitor (ProblemsHolder holder ) {
6867
69- myHolder = holder ;
70- }
68+ myHolder = holder ;
69+ }
7170
72- @ Override
73- public void visitAnnotation (PsiAnnotation annotation ) {
74- super .visitAnnotation (annotation );
75- if (!JCiPUtil .isGuardedByAnnotation (annotation )) {
76- return ;
77- }
78- final String guardValue = JCiPUtil .getGuardValue (annotation );
79- if (guardValue == null || "this" .equals (guardValue )) {
80- return ;
81- }
82- final PsiClass containingClass = PsiTreeUtil .getParentOfType (annotation , PsiClass .class );
83- if (containingClass == null ) {
84- return ;
85- }
86- final PsiField guardField = containingClass .findFieldByName (guardValue , true );
87- if (guardField == null ) {
88- return ;
89- }
90- if (guardField .hasModifierProperty (PsiModifier .FINAL )) {
91- return ;
92- }
93- final PsiAnnotationMemberValue member = annotation .findAttributeValue ("value" );
94- if (member == null ) {
95- return ;
96- }
97- myHolder .registerProblem (member , "Non-final @GuardedBy field #ref #loc" );
98- }
71+ @ Override
72+ public void visitAnnotation (PsiAnnotation annotation ) {
73+ super .visitAnnotation (annotation );
74+ if (!JCiPUtil .isGuardedByAnnotation (annotation )) {
75+ return ;
76+ }
77+ final String guardValue = JCiPUtil .getGuardValue (annotation );
78+ if (guardValue == null || "this" .equals (guardValue )) {
79+ return ;
80+ }
81+ final PsiClass containingClass = PsiTreeUtil .getParentOfType (annotation , PsiClass .class );
82+ if (containingClass == null ) {
83+ return ;
84+ }
85+ final PsiField guardField = containingClass .findFieldByName (guardValue , true );
86+ if (guardField == null ) {
87+ return ;
88+ }
89+ if (guardField .hasModifierProperty (PsiModifier .FINAL )) {
90+ return ;
91+ }
92+ final PsiAnnotationMemberValue member = annotation .findAttributeValue ("value" );
93+ if (member == null ) {
94+ return ;
95+ }
96+ myHolder .registerProblem (member , "Non-final @GuardedBy field #ref #loc" );
97+ }
9998
100- @ Override
101- public void visitDocTag (PsiDocTag psiDocTag ) {
102- super .visitDocTag (psiDocTag );
103- if (!JCiPUtil .isGuardedByTag (psiDocTag )) {
104- return ;
105- }
106- final String guardValue = JCiPUtil .getGuardValue (psiDocTag );
107- if ("this" .equals (guardValue )) {
108- return ;
109- }
110- final PsiClass containingClass = PsiTreeUtil .getParentOfType (psiDocTag , PsiClass .class );
111- if (containingClass == null ) {
112- return ;
113- }
114- final PsiField guardField = containingClass .findFieldByName (guardValue , true );
115- if (guardField == null ) {
116- return ;
117- }
118- if (guardField .hasModifierProperty (PsiModifier .FINAL )) {
119- return ;
120- }
121- myHolder .registerProblem (psiDocTag , "Non-final @GuardedBy field \" " + guardValue + "\" #loc" );
99+ @ Override
100+ public void visitDocTag (PsiDocTag psiDocTag ) {
101+ super .visitDocTag (psiDocTag );
102+ if (!JCiPUtil .isGuardedByTag (psiDocTag )) {
103+ return ;
104+ }
105+ final String guardValue = JCiPUtil .getGuardValue (psiDocTag );
106+ if ("this" .equals (guardValue )) {
107+ return ;
108+ }
109+ final PsiClass containingClass = PsiTreeUtil .getParentOfType (psiDocTag , PsiClass .class );
110+ if (containingClass == null ) {
111+ return ;
112+ }
113+ final PsiField guardField = containingClass .findFieldByName (guardValue , true );
114+ if (guardField == null ) {
115+ return ;
116+ }
117+ if (guardField .hasModifierProperty (PsiModifier .FINAL )) {
118+ return ;
119+ }
120+ myHolder .registerProblem (psiDocTag , "Non-final @GuardedBy field \" " + guardValue + "\" #loc" );
121+ }
122122 }
123- }
124123}
0 commit comments