void (PushDownData<MemberInfo, PsiMember> pushDownData) { for (MemberInfoBase<? extends PsiElement> memberInfo : pushDownData.getMembersToMove()) { final PsiElement member = memberInfo.getMember(); if (member instanceof PsiField || member instanceof PsiClassInitializer) { member.delete(); } else if (member instanceof PsiMethod) { if (memberInfo.isToAbstract()) { final PsiMethod method = (PsiMethod)member; if (method.hasModifierProperty(PsiModifier.PRIVATE)) { PsiUtil.setModifierProperty(method, PsiModifier.PROTECTED, true); } if (method.hasModifierProperty(PsiModifier.DEFAULT)) { PsiUtil.setModifierProperty(method, PsiModifier.DEFAULT, false); } RefactoringUtil.makeMethodAbstract((PsiClass)pushDownData.getSourceClass(), method); pushDownData.getCommentPolicy().processOldJavaDoc(method.getDocComment()); } else { member.delete(); } } else if (member instanceof PsiClass) { if (Boolean.FALSE.equals(memberInfo.getOverrides())) { RefactoringUtil.removeFromReferenceList(((PsiClass)pushDownData.getSourceClass()).getImplementsList(), (PsiClass)member); } else { member.delete(); } } } }