void (@NotNull PsiClass aClass) { if (aClass.isInterface() || aClass.isEnum() || aClass.isAnnotationType() || aClass.isRecord() || aClass instanceof PsiTypeParameter) { return; } if (aClass.hasModifierProperty(PsiModifier.ABSTRACT)) { return; } if (!isExternalizable(aClass)) { return; } final PsiMethod[] constructors = aClass.getConstructors(); final PsiMethod constructor = getNoArgConstructor(constructors); if (constructor == null) { if (aClass.hasModifierProperty(PsiModifier.PUBLIC) && constructors.length == 0) { return; } } else { if (constructor.hasModifierProperty(PsiModifier.PUBLIC)) { return; } } if (SerializationUtils.hasWriteReplace(aClass)) { return; } registerClassError(aClass, aClass, constructor); }