Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -25,58 +25,54 @@
import com.siyeh.ig.InspectionGadgetsFix;
import com.siyeh.localize.InspectionGadgetsLocalize;
import consulo.annotation.component.ExtensionImpl;
import consulo.localize.LocalizeValue;
import jakarta.annotation.Nonnull;

@ExtensionImpl
public class ReadResolveAndWriteReplaceProtectedInspection
extends BaseInspection {

@Nonnull
public String getDisplayName() {
return InspectionGadgetsLocalize.readresolveWritereplaceProtectedDisplayName().get();
}

@Nonnull
public String buildErrorString(Object... infos) {
return InspectionGadgetsLocalize.readresolveWritereplaceProtectedProblemDescriptor().get();
}
public class ReadResolveAndWriteReplaceProtectedInspection extends BaseInspection {
@Nonnull
@Override
public LocalizeValue getDisplayName() {
return InspectionGadgetsLocalize.readresolveWritereplaceProtectedDisplayName();
}

public BaseInspectionVisitor buildVisitor() {
return new ReadResolveWriteReplaceProtectedVisitor();
}
@Nonnull
public String buildErrorString(Object... infos) {
return InspectionGadgetsLocalize.readresolveWritereplaceProtectedProblemDescriptor().get();
}

public InspectionGadgetsFix buildFix(Object... infos) {
return new ChangeModifierFix(PsiModifier.PROTECTED);
}
public BaseInspectionVisitor buildVisitor() {
return new ReadResolveWriteReplaceProtectedVisitor();
}

private static class ReadResolveWriteReplaceProtectedVisitor
extends BaseInspectionVisitor {
public InspectionGadgetsFix buildFix(Object... infos) {
return new ChangeModifierFix(PsiModifier.PROTECTED);
}

@Override
public void visitMethod(@Nonnull PsiMethod method) {
// no call to super, so it doesn't drill down
final PsiClass aClass = method.getContainingClass();
if (aClass == null) {
return;
}
if (aClass.isInterface() || aClass.isAnnotationType()) {
return;
}
if (method.hasModifierProperty(PsiModifier.PROTECTED)) {
return;
}
if (aClass.hasModifierProperty(PsiModifier.FINAL) &&
method.hasModifierProperty(PsiModifier.PRIVATE)) {
return;
}
if (!SerializationUtils.isReadResolve(method) &&
!SerializationUtils.isWriteReplace(method)) {
return;
}
if (!SerializationUtils.isSerializable(aClass)) {
return;
}
registerMethodError(method);
private static class ReadResolveWriteReplaceProtectedVisitor extends BaseInspectionVisitor {
@Override
public void visitMethod(@Nonnull PsiMethod method) {
// no call to super, so it doesn't drill down
final PsiClass aClass = method.getContainingClass();
if (aClass == null) {
return;
}
if (aClass.isInterface() || aClass.isAnnotationType()) {
return;
}
if (method.hasModifierProperty(PsiModifier.PROTECTED)) {
return;
}
if (aClass.hasModifierProperty(PsiModifier.FINAL) && method.hasModifierProperty(PsiModifier.PRIVATE)) {
return;
}
if (!SerializationUtils.isReadResolve(method) && !SerializationUtils.isWriteReplace(method)) {
return;
}
if (!SerializationUtils.isSerializable(aClass)) {
return;
}
registerMethodError(method);
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,68 +24,64 @@
import com.siyeh.ig.BaseInspectionVisitor;
import com.siyeh.localize.InspectionGadgetsLocalize;
import consulo.annotation.component.ExtensionImpl;
import consulo.localize.LocalizeValue;
import jakarta.annotation.Nonnull;
import org.jetbrains.annotations.NonNls;

@ExtensionImpl
public class SerialPersistentFieldsWithWrongSignatureInspection
extends BaseInspection {

@Nonnull
public String getDisplayName() {
return InspectionGadgetsLocalize.serialpersistentfieldsWithWrongSignatureDisplayName().get();
}

@Nonnull
public String buildErrorString(Object... infos) {
return InspectionGadgetsLocalize.serialpersistentfieldsWithWrongSignatureProblemDescriptor().get();
}
public class SerialPersistentFieldsWithWrongSignatureInspection extends BaseInspection {
@Nonnull
@Override
public LocalizeValue getDisplayName() {
return InspectionGadgetsLocalize.serialpersistentfieldsWithWrongSignatureDisplayName();
}

public BaseInspectionVisitor buildVisitor() {
return new SerialPersistentFieldsWithWrongSignatureVisitor();
}
@Nonnull
public String buildErrorString(Object... infos) {
return InspectionGadgetsLocalize.serialpersistentfieldsWithWrongSignatureProblemDescriptor().get();
}

private static class SerialPersistentFieldsWithWrongSignatureVisitor
extends BaseInspectionVisitor {
public BaseInspectionVisitor buildVisitor() {
return new SerialPersistentFieldsWithWrongSignatureVisitor();
}

@Override
public void visitClass(@Nonnull PsiClass aClass) {
// no call to super, so it doesn't drill down
if (aClass.isInterface() || aClass.isAnnotationType()) {
return;
}
PsiField badSerialPersistentFields = null;
final PsiField[] fields = aClass.getFields();
for (final PsiField field : fields) {
if (isSerialPersistentFields(field)) {
if (!field.hasModifierProperty(PsiModifier.PRIVATE) ||
!field.hasModifierProperty(PsiModifier.STATIC) ||
!field.hasModifierProperty(PsiModifier.FINAL)) {
badSerialPersistentFields = field;
break;
}
else {
final PsiType type = field.getType();
if (!type.equalsToText("java.io.ObjectStreamField" +
"[]")) {
badSerialPersistentFields = field;
break;
private static class SerialPersistentFieldsWithWrongSignatureVisitor extends BaseInspectionVisitor {
@Override
public void visitClass(@Nonnull PsiClass aClass) {
// no call to super, so it doesn't drill down
if (aClass.isInterface() || aClass.isAnnotationType()) {
return;
}
PsiField badSerialPersistentFields = null;
final PsiField[] fields = aClass.getFields();
for (final PsiField field : fields) {
if (isSerialPersistentFields(field)) {
if (!field.hasModifierProperty(PsiModifier.PRIVATE) ||
!field.hasModifierProperty(PsiModifier.STATIC) ||
!field.hasModifierProperty(PsiModifier.FINAL)) {
badSerialPersistentFields = field;
break;
}
else {
final PsiType type = field.getType();
if (!type.equalsToText("java.io.ObjectStreamField[]")) {
badSerialPersistentFields = field;
break;
}
}
}
}
if (badSerialPersistentFields == null) {
return;
}
}
if (!SerializationUtils.isSerializable(aClass)) {
return;
}
registerFieldError(badSerialPersistentFields);
}
}
if (badSerialPersistentFields == null) {
return;
}
if (!SerializationUtils.isSerializable(aClass)) {
return;
}
registerFieldError(badSerialPersistentFields);
}

private static boolean isSerialPersistentFields(PsiField field) {
@NonNls final String fieldName = field.getName();
return "serialPersistentFields".equals(fieldName);
private static boolean isSerialPersistentFields(PsiField field) {
final String fieldName = field.getName();
return "serialPersistentFields".equals(fieldName);
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,97 +26,94 @@
import consulo.language.editor.inspection.ProblemDescriptor;
import consulo.language.psi.PsiElement;
import consulo.language.util.IncorrectOperationException;
import consulo.localize.LocalizeValue;
import consulo.project.Project;
import jakarta.annotation.Nonnull;

@ExtensionImpl
public class SerialVersionUIDNotStaticFinalInspection extends BaseInspection {

@Override
@Nonnull
public String getID() {
return "SerialVersionUIDWithWrongSignature";
}

@Override
@Nonnull
public String getDisplayName() {
return InspectionGadgetsLocalize.serialversionuidPrivateStaticFinalLongDisplayName().get();
}

@Override
@Nonnull
public String buildErrorString(Object... infos) {
return InspectionGadgetsLocalize.serialversionuidPrivateStaticFinalLongProblemDescriptor().get();
}

@Override
protected InspectionGadgetsFix buildFix(Object... infos) {
if ((Boolean)infos[0]) {
return null;
@Override
@Nonnull
public String getID() {
return "SerialVersionUIDWithWrongSignature";
}
return new SerialVersionUIDNotStaticFinalFix();
}

private static class SerialVersionUIDNotStaticFinalFix
extends InspectionGadgetsFix {
@Nonnull
@Override
public LocalizeValue getDisplayName() {
return InspectionGadgetsLocalize.serialversionuidPrivateStaticFinalLongDisplayName();
}

@Override
@Nonnull
public String getName() {
return InspectionGadgetsLocalize.serialversionuidPrivateStaticFinalLongQuickfix().get();
public String buildErrorString(Object... infos) {
return InspectionGadgetsLocalize.serialversionuidPrivateStaticFinalLongProblemDescriptor().get();
}

@Override
protected void doFix(Project project, ProblemDescriptor descriptor) throws IncorrectOperationException {
final PsiElement element = descriptor.getPsiElement();
final PsiElement parent = element.getParent();
if (!(parent instanceof PsiField)) {
return;
}
final PsiField field = (PsiField)parent;
final PsiModifierList modifierList = field.getModifierList();
if (modifierList == null) {
return;
}
modifierList.setModifierProperty(PsiModifier.PRIVATE, true);
modifierList.setModifierProperty(PsiModifier.STATIC, true);
modifierList.setModifierProperty(PsiModifier.FINAL, true);
protected InspectionGadgetsFix buildFix(Object... infos) {
if ((Boolean) infos[0]) {
return null;
}
return new SerialVersionUIDNotStaticFinalFix();
}
}

private static class SerialVersionUIDNotStaticFinalFix extends InspectionGadgetsFix {
@Nonnull
@Override
public LocalizeValue getName() {
return InspectionGadgetsLocalize.serialversionuidPrivateStaticFinalLongQuickfix();
}

@Override
public BaseInspectionVisitor buildVisitor() {
return new SerialVersionUIDNotStaticFinalVisitor();
}
@Override
protected void doFix(Project project, ProblemDescriptor descriptor) throws IncorrectOperationException {
final PsiElement element = descriptor.getPsiElement();
final PsiElement parent = element.getParent();
if (!(parent instanceof PsiField)) {
return;
}
final PsiField field = (PsiField) parent;
final PsiModifierList modifierList = field.getModifierList();
if (modifierList == null) {
return;
}
modifierList.setModifierProperty(PsiModifier.PRIVATE, true);
modifierList.setModifierProperty(PsiModifier.STATIC, true);
modifierList.setModifierProperty(PsiModifier.FINAL, true);
}
}

private static class SerialVersionUIDNotStaticFinalVisitor
extends BaseInspectionVisitor {

@Override
public void visitClass(@Nonnull PsiClass aClass) {
// no call to super, so it doesn't drill down
if (aClass.isInterface() || aClass.isAnnotationType()) {
return;
}
final PsiField field =
aClass.findFieldByName(
HardcodedMethodConstants.SERIAL_VERSION_UID, false);
if (field == null) {
return;
}
final PsiType type = field.getType();
final boolean wrongType = !PsiType.LONG.equals(type);
if (field.hasModifierProperty(PsiModifier.STATIC) &&
field.hasModifierProperty(PsiModifier.PRIVATE) &&
field.hasModifierProperty(PsiModifier.FINAL) &&
!wrongType) {
return;
}
if (!SerializationUtils.isSerializable(aClass)) {
return;
}
registerFieldError(field, Boolean.valueOf(wrongType));
public BaseInspectionVisitor buildVisitor() {
return new SerialVersionUIDNotStaticFinalVisitor();
}

private static class SerialVersionUIDNotStaticFinalVisitor extends BaseInspectionVisitor {
@Override
public void visitClass(@Nonnull PsiClass aClass) {
// no call to super, so it doesn't drill down
if (aClass.isInterface() || aClass.isAnnotationType()) {
return;
}
final PsiField field =
aClass.findFieldByName(
HardcodedMethodConstants.SERIAL_VERSION_UID, false);
if (field == null) {
return;
}
final PsiType type = field.getType();
final boolean wrongType = !PsiType.LONG.equals(type);
if (field.hasModifierProperty(PsiModifier.STATIC) &&
field.hasModifierProperty(PsiModifier.PRIVATE) &&
field.hasModifierProperty(PsiModifier.FINAL) &&
!wrongType) {
return;
}
if (!SerializationUtils.isSerializable(aClass)) {
return;
}
registerFieldError(field, Boolean.valueOf(wrongType));
}
}
}
}
Loading
Loading