void (PsiClass aClass) { for (PsiMethod method : aClass.getMethods()) { if (isEmptyConstructor(method)) { method.delete(); continue; } PsiUtil.setModifierProperty(method, PsiModifier.PUBLIC, false); if (method.hasModifierProperty(PsiModifier.STATIC)) { continue; } else if (method.hasModifierProperty(PsiModifier.ABSTRACT)) { PsiUtil.setModifierProperty(method, PsiModifier.ABSTRACT, false); // redundant modifier continue; } PsiUtil.setModifierProperty(method, PsiModifier.DEFAULT, true); } for (PsiField field : aClass.getFields()) { PsiUtil.setModifierProperty(field, PsiModifier.PUBLIC, false); PsiUtil.setModifierProperty(field, PsiModifier.STATIC, false); PsiUtil.setModifierProperty(field, PsiModifier.FINAL, false); } for (PsiClass innerClass : aClass.getInnerClasses()) { PsiUtil.setModifierProperty(innerClass, PsiModifier.PUBLIC, false); } final PsiIdentifier nameIdentifier = aClass.getNameIdentifier(); if (nameIdentifier == null) { return; } final PsiKeyword classKeyword = PsiTreeUtil.getPrevSiblingOfType(nameIdentifier, PsiKeyword.class); final PsiElementFactory factory = JavaPsiFacade.getElementFactory(aClass.getProject()); final PsiKeyword interfaceKeyword = factory.createKeyword(PsiKeyword.INTERFACE); if (classKeyword == null) { return; } PsiUtil.setModifierProperty(aClass, PsiModifier.ABSTRACT, false); PsiUtil.setModifierProperty(aClass, PsiModifier.FINAL, false); classKeyword.replace(interfaceKeyword); }