void (PsiClass aClass) { final PsiReferenceList extendsList = aClass.getExtendsList(); final PsiReferenceList implementsList = aClass.getImplementsList(); if (extendsList == null || implementsList == null) { return; } final PsiJavaCodeReferenceElement[] extendsElements = extendsList.getReferenceElements(); final PsiJavaCodeReferenceElement extendsElement; if (extendsElements.length != 1) { if (aClass.isEnum()) { final PsiElementFactory factory = JavaPsiFacade.getElementFactory(aClass.getProject()); extendsElement = factory.createReferenceElementByFQClassName(CommonClassNames.JAVA_LANG_ENUM, aClass.getResolveScope()); } else { extendsElement = null; } } else { extendsElement = extendsElements[0]; } final PsiJavaCodeReferenceElement[] implementsElements = implementsList.getReferenceElements(); for (PsiJavaCodeReferenceElement implementsElement : implementsElements) { checkImplementedClass(implementsElement, extendsElement, implementsElements); } }