mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
merged CVS and Subversion versions
This commit is contained in:
+3
-3
@@ -25,11 +25,11 @@ public class NonSerializableWithSerialVersionUIDFieldInspection extends ClassIns
|
||||
}
|
||||
|
||||
public BaseInspectionVisitor createVisitor(InspectionManager inspectionManager, boolean onTheFly) {
|
||||
return new SerializableDefinesSerialVersionUIDVisitor(this, inspectionManager, onTheFly);
|
||||
return new NonSerializableWithSerialVersionUIDVisitor(this, inspectionManager, onTheFly);
|
||||
}
|
||||
|
||||
private static class SerializableDefinesSerialVersionUIDVisitor extends BaseInspectionVisitor {
|
||||
private SerializableDefinesSerialVersionUIDVisitor(BaseInspection inspection,
|
||||
private static class NonSerializableWithSerialVersionUIDVisitor extends BaseInspectionVisitor {
|
||||
private NonSerializableWithSerialVersionUIDVisitor(BaseInspection inspection,
|
||||
InspectionManager inspectionManager, boolean isOnTheFly) {
|
||||
super(inspection, inspectionManager, isOnTheFly);
|
||||
}
|
||||
|
||||
+1
-1
@@ -63,7 +63,7 @@ public class ReadObjectInitializationInspection extends FieldInspection {
|
||||
return true;
|
||||
}
|
||||
final PsiCodeBlock body = method.getBody();
|
||||
return InitializationUtils.blockMustAssignVariable(field, body);
|
||||
return InitializationUtils.blockMustAssignVariableOrFail(field, body);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+12
-35
@@ -1,20 +1,17 @@
|
||||
package com.siyeh.ig.serialization;
|
||||
|
||||
import com.intellij.codeInspection.InspectionManager;
|
||||
import com.intellij.codeInspection.ProblemDescriptor;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.siyeh.ig.*;
|
||||
import com.siyeh.ig.BaseInspection;
|
||||
import com.siyeh.ig.BaseInspectionVisitor;
|
||||
import com.siyeh.ig.ClassInspection;
|
||||
import com.siyeh.ig.GroupNames;
|
||||
import com.siyeh.ig.psiutils.SerializationUtils;
|
||||
|
||||
public class SerialVersionUIDNotStaticFinalInspection extends ClassInspection {
|
||||
private static final Logger s_logger = Logger.getInstance("SerialVersionUIDNotStaticFinalInspection");
|
||||
private final MakeStaticFinalFix fix = new MakeStaticFinalFix();
|
||||
|
||||
public String getDisplayName() {
|
||||
return "'serialVersionUID' field not declared 'static final'";
|
||||
return "'serialVersionUID' field not declared 'private static final long'";
|
||||
}
|
||||
|
||||
public String getGroupDisplayName() {
|
||||
@@ -22,39 +19,13 @@ public class SerialVersionUIDNotStaticFinalInspection extends ClassInspection {
|
||||
}
|
||||
|
||||
public String buildErrorString(PsiElement location) {
|
||||
return "#ref field of a Serializable class is not declared 'static' and 'final' #loc ";
|
||||
return "#ref field of a Serializable class is not declared 'private static final long' #loc ";
|
||||
}
|
||||
|
||||
public BaseInspectionVisitor createVisitor(InspectionManager inspectionManager, boolean onTheFly) {
|
||||
return new SerializableDefinesSerialVersionUIDVisitor(this, inspectionManager, onTheFly);
|
||||
}
|
||||
|
||||
public InspectionGadgetsFix buildFix(PsiElement location) {
|
||||
return fix;
|
||||
}
|
||||
|
||||
private static class MakeStaticFinalFix extends InspectionGadgetsFix {
|
||||
public String getName() {
|
||||
return "Make 'static final'";
|
||||
}
|
||||
|
||||
public void applyFix(Project project, ProblemDescriptor descriptor) {
|
||||
try {
|
||||
final PsiElement fieldNameToken = descriptor.getPsiElement();
|
||||
final PsiField field = (PsiField) fieldNameToken.getParent();
|
||||
final PsiModifierList modifiers = field.getModifierList();
|
||||
if (!modifiers.hasModifierProperty(PsiModifier.STATIC)) {
|
||||
modifiers.setModifierProperty(PsiModifier.STATIC, true);
|
||||
}
|
||||
if (!modifiers.hasModifierProperty(PsiModifier.FINAL)) {
|
||||
modifiers.setModifierProperty(PsiModifier.FINAL, true);
|
||||
}
|
||||
} catch (IncorrectOperationException e) {
|
||||
s_logger.error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static class SerializableDefinesSerialVersionUIDVisitor extends BaseInspectionVisitor {
|
||||
private SerializableDefinesSerialVersionUIDVisitor(BaseInspection inspection,
|
||||
InspectionManager inspectionManager, boolean isOnTheFly) {
|
||||
@@ -74,8 +45,14 @@ public class SerialVersionUIDNotStaticFinalInspection extends ClassInspection {
|
||||
final PsiField field = fields[i];
|
||||
if (isSerialVersionUID(field)) {
|
||||
if (!field.hasModifierProperty(PsiModifier.STATIC) ||
|
||||
!field.hasModifierProperty(PsiModifier.PRIVATE) ||
|
||||
!field.hasModifierProperty(PsiModifier.FINAL)) {
|
||||
registerFieldError(field);
|
||||
} else {
|
||||
final PsiType type = field.getType();
|
||||
if (PsiType.LONG.equals(type)) {
|
||||
registerFieldError(field);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+30
-7
@@ -1,13 +1,11 @@
|
||||
package com.siyeh.ig.serialization;
|
||||
|
||||
import com.intellij.codeInspection.InspectionManager;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiField;
|
||||
import com.siyeh.ig.BaseInspection;
|
||||
import com.siyeh.ig.BaseInspectionVisitor;
|
||||
import com.siyeh.ig.ClassInspection;
|
||||
import com.siyeh.ig.GroupNames;
|
||||
import com.intellij.codeInspection.ProblemDescriptor;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.siyeh.ig.*;
|
||||
import com.siyeh.ig.psiutils.SerializationUtils;
|
||||
import com.siyeh.ig.ui.SingleCheckboxOptionsPanel;
|
||||
|
||||
@@ -15,6 +13,7 @@ import javax.swing.*;
|
||||
|
||||
public class SerializableHasSerialVersionUIDFieldInspection extends ClassInspection {
|
||||
public boolean m_ignoreSerializableDueToInheritance = true;
|
||||
private final AddSerialVersionUIDFix fix = new AddSerialVersionUIDFix();
|
||||
|
||||
public String getDisplayName() {
|
||||
return "Serializable class without serialVersionUID";
|
||||
@@ -28,6 +27,30 @@ public class SerializableHasSerialVersionUIDFieldInspection extends ClassInspect
|
||||
return "#ref doesn't define a serialVersionUID field #loc";
|
||||
}
|
||||
|
||||
protected InspectionGadgetsFix buildFix(PsiElement location) {
|
||||
return fix;
|
||||
}
|
||||
|
||||
private static class AddSerialVersionUIDFix extends InspectionGadgetsFix {
|
||||
public String getName() {
|
||||
return "Add serialVersionUIDField";
|
||||
}
|
||||
|
||||
public void applyFix(Project project, ProblemDescriptor problemDescriptor) {
|
||||
final PsiElement classIdentifier = problemDescriptor.getPsiElement();
|
||||
final PsiElement aClass = classIdentifier.getParent();
|
||||
try {
|
||||
final PsiManager psiManager = aClass.getManager();
|
||||
final PsiElementFactory elementFactory = psiManager.getElementFactory();
|
||||
final long serialVersionUID = 1;
|
||||
final PsiField field = elementFactory.createFieldFromText("private static final long serialVersionUID = "+ serialVersionUID+"L;", aClass);
|
||||
aClass.add(field);
|
||||
} catch (IncorrectOperationException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public JComponent createOptionsPanel() {
|
||||
return new SingleCheckboxOptionsPanel("Ignore classes serializable due to inheritance",
|
||||
this, "m_ignoreSerializableDueToInheritance");
|
||||
|
||||
Reference in New Issue
Block a user