2626import consulo .language .editor .inspection .ProblemDescriptor ;
2727import consulo .language .psi .PsiElement ;
2828import consulo .language .util .IncorrectOperationException ;
29+ import consulo .localize .LocalizeValue ;
2930import consulo .project .Project ;
3031import jakarta .annotation .Nonnull ;
3132
3233@ ExtensionImpl
3334public class SerialVersionUIDNotStaticFinalInspection extends BaseInspection {
34-
35- @ Override
36- @ Nonnull
37- public String getID () {
38- return "SerialVersionUIDWithWrongSignature" ;
39- }
40-
41- @ Override
42- @ Nonnull
43- public String getDisplayName () {
44- return InspectionGadgetsLocalize .serialversionuidPrivateStaticFinalLongDisplayName ().get ();
45- }
46-
47- @ Override
48- @ Nonnull
49- public String buildErrorString (Object ... infos ) {
50- return InspectionGadgetsLocalize .serialversionuidPrivateStaticFinalLongProblemDescriptor ().get ();
51- }
52-
53- @ Override
54- protected InspectionGadgetsFix buildFix (Object ... infos ) {
55- if ((Boolean )infos [0 ]) {
56- return null ;
35+ @ Override
36+ @ Nonnull
37+ public String getID () {
38+ return "SerialVersionUIDWithWrongSignature" ;
5739 }
58- return new SerialVersionUIDNotStaticFinalFix ();
59- }
6040
61- private static class SerialVersionUIDNotStaticFinalFix
62- extends InspectionGadgetsFix {
41+ @ Nonnull
42+ @ Override
43+ public LocalizeValue getDisplayName () {
44+ return InspectionGadgetsLocalize .serialversionuidPrivateStaticFinalLongDisplayName ();
45+ }
6346
47+ @ Override
6448 @ Nonnull
65- public String getName ( ) {
66- return InspectionGadgetsLocalize .serialversionuidPrivateStaticFinalLongQuickfix ().get ();
49+ public String buildErrorString ( Object ... infos ) {
50+ return InspectionGadgetsLocalize .serialversionuidPrivateStaticFinalLongProblemDescriptor ().get ();
6751 }
6852
6953 @ Override
70- protected void doFix (Project project , ProblemDescriptor descriptor ) throws IncorrectOperationException {
71- final PsiElement element = descriptor .getPsiElement ();
72- final PsiElement parent = element .getParent ();
73- if (!(parent instanceof PsiField )) {
74- return ;
75- }
76- final PsiField field = (PsiField )parent ;
77- final PsiModifierList modifierList = field .getModifierList ();
78- if (modifierList == null ) {
79- return ;
80- }
81- modifierList .setModifierProperty (PsiModifier .PRIVATE , true );
82- modifierList .setModifierProperty (PsiModifier .STATIC , true );
83- modifierList .setModifierProperty (PsiModifier .FINAL , true );
54+ protected InspectionGadgetsFix buildFix (Object ... infos ) {
55+ if ((Boolean ) infos [0 ]) {
56+ return null ;
57+ }
58+ return new SerialVersionUIDNotStaticFinalFix ();
8459 }
85- }
8660
61+ private static class SerialVersionUIDNotStaticFinalFix extends InspectionGadgetsFix {
62+ @ Nonnull
63+ @ Override
64+ public LocalizeValue getName () {
65+ return InspectionGadgetsLocalize .serialversionuidPrivateStaticFinalLongQuickfix ();
66+ }
8767
88- @ Override
89- public BaseInspectionVisitor buildVisitor () {
90- return new SerialVersionUIDNotStaticFinalVisitor ();
91- }
68+ @ Override
69+ protected void doFix (Project project , ProblemDescriptor descriptor ) throws IncorrectOperationException {
70+ final PsiElement element = descriptor .getPsiElement ();
71+ final PsiElement parent = element .getParent ();
72+ if (!(parent instanceof PsiField )) {
73+ return ;
74+ }
75+ final PsiField field = (PsiField ) parent ;
76+ final PsiModifierList modifierList = field .getModifierList ();
77+ if (modifierList == null ) {
78+ return ;
79+ }
80+ modifierList .setModifierProperty (PsiModifier .PRIVATE , true );
81+ modifierList .setModifierProperty (PsiModifier .STATIC , true );
82+ modifierList .setModifierProperty (PsiModifier .FINAL , true );
83+ }
84+ }
9285
93- private static class SerialVersionUIDNotStaticFinalVisitor
94- extends BaseInspectionVisitor {
9586
9687 @ Override
97- public void visitClass (@ Nonnull PsiClass aClass ) {
98- // no call to super, so it doesn't drill down
99- if (aClass .isInterface () || aClass .isAnnotationType ()) {
100- return ;
101- }
102- final PsiField field =
103- aClass .findFieldByName (
104- HardcodedMethodConstants .SERIAL_VERSION_UID , false );
105- if (field == null ) {
106- return ;
107- }
108- final PsiType type = field .getType ();
109- final boolean wrongType = !PsiType .LONG .equals (type );
110- if (field .hasModifierProperty (PsiModifier .STATIC ) &&
111- field .hasModifierProperty (PsiModifier .PRIVATE ) &&
112- field .hasModifierProperty (PsiModifier .FINAL ) &&
113- !wrongType ) {
114- return ;
115- }
116- if (!SerializationUtils .isSerializable (aClass )) {
117- return ;
118- }
119- registerFieldError (field , Boolean .valueOf (wrongType ));
88+ public BaseInspectionVisitor buildVisitor () {
89+ return new SerialVersionUIDNotStaticFinalVisitor ();
90+ }
91+
92+ private static class SerialVersionUIDNotStaticFinalVisitor extends BaseInspectionVisitor {
93+ @ Override
94+ public void visitClass (@ Nonnull PsiClass aClass ) {
95+ // no call to super, so it doesn't drill down
96+ if (aClass .isInterface () || aClass .isAnnotationType ()) {
97+ return ;
98+ }
99+ final PsiField field =
100+ aClass .findFieldByName (
101+ HardcodedMethodConstants .SERIAL_VERSION_UID , false );
102+ if (field == null ) {
103+ return ;
104+ }
105+ final PsiType type = field .getType ();
106+ final boolean wrongType = !PsiType .LONG .equals (type );
107+ if (field .hasModifierProperty (PsiModifier .STATIC ) &&
108+ field .hasModifierProperty (PsiModifier .PRIVATE ) &&
109+ field .hasModifierProperty (PsiModifier .FINAL ) &&
110+ !wrongType ) {
111+ return ;
112+ }
113+ if (!SerializationUtils .isSerializable (aClass )) {
114+ return ;
115+ }
116+ registerFieldError (field , Boolean .valueOf (wrongType ));
117+ }
120118 }
121- }
122119}
0 commit comments