mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
push down: apply javadoc settings when keep abstract (IDEA-155596)
This commit is contained in:
+20
-17
@@ -217,27 +217,30 @@ public class JavaPushDownDelegate extends PushDownDelegate<MemberInfo, PsiMember
|
||||
PsiMethod methodBySignature = MethodSignatureUtil.findMethodBySuperSignature(targetClass, method.getSignature(substitutor), false);
|
||||
if (methodBySignature == null) {
|
||||
newMember = (PsiMethod)targetClass.add(method);
|
||||
if (sourceClass.isInterface()) {
|
||||
final PsiMethod oldMethod = (PsiMethod)memberInfo.getMember();
|
||||
if (!targetClass.isInterface()) {
|
||||
PsiUtil.setModifierProperty(newMember, PsiModifier.PUBLIC, true);
|
||||
if (oldMethod.hasModifierProperty(PsiModifier.ABSTRACT)) {
|
||||
RefactoringUtil.makeMethodAbstract(targetClass, (PsiMethod)newMember);
|
||||
final PsiMethod oldMethod = (PsiMethod)memberInfo.getMember();
|
||||
if (sourceClass.isInterface() && !targetClass.isInterface()) {
|
||||
PsiUtil.setModifierProperty(newMember, PsiModifier.PUBLIC, true);
|
||||
if (oldMethod.hasModifierProperty(PsiModifier.ABSTRACT)) {
|
||||
RefactoringUtil.makeMethodAbstract(targetClass, (PsiMethod)newMember);
|
||||
}
|
||||
else {
|
||||
PsiUtil.setModifierProperty(newMember, PsiModifier.DEFAULT, false);
|
||||
}
|
||||
}
|
||||
|
||||
if (memberInfo.isToAbstract()) {
|
||||
if (sourceClass.isInterface()) {
|
||||
if (oldMethod.hasModifierProperty(PsiModifier.DEFAULT)) {
|
||||
PsiUtil.setModifierProperty(oldMethod, PsiModifier.DEFAULT, false);
|
||||
RefactoringUtil.makeMethodAbstract(sourceClass, oldMethod);
|
||||
}
|
||||
else {
|
||||
PsiUtil.setModifierProperty(newMember, PsiModifier.DEFAULT, false);
|
||||
}
|
||||
else {
|
||||
if (newMember.hasModifierProperty(PsiModifier.PRIVATE)) {
|
||||
PsiUtil.setModifierProperty(newMember, PsiModifier.PROTECTED, true);
|
||||
}
|
||||
}
|
||||
|
||||
if (memberInfo.isToAbstract() && oldMethod.hasModifierProperty(PsiModifier.DEFAULT)) {
|
||||
PsiUtil.setModifierProperty(oldMethod, PsiModifier.DEFAULT, false);
|
||||
RefactoringUtil.makeMethodAbstract(sourceClass, oldMethod);
|
||||
}
|
||||
}
|
||||
else if (memberInfo.isToAbstract()) {
|
||||
if (newMember.hasModifierProperty(PsiModifier.PRIVATE)) {
|
||||
PsiUtil.setModifierProperty(newMember, PsiModifier.PROTECTED, true);
|
||||
}
|
||||
pushDownData.getCommentPolicy().processNewJavaDoc(((PsiMethod)newMember).getDocComment());
|
||||
}
|
||||
if (memberInfo.isToAbstract()) {
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
abstract class Test {
|
||||
/**
|
||||
* foo's javadoc
|
||||
*/
|
||||
abstract void foo();
|
||||
}
|
||||
|
||||
abstract class B extends Test {}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
abstract class Test {
|
||||
/**
|
||||
* foo's javadoc
|
||||
*/
|
||||
abstract void foo();
|
||||
}
|
||||
|
||||
abstract class B extends Test {
|
||||
@Override
|
||||
abstract void foo();
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
interface Test {
|
||||
/**
|
||||
* foo's javadoc
|
||||
*/
|
||||
void foo();
|
||||
}
|
||||
|
||||
interface B extends Test {}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
interface Test {
|
||||
/**
|
||||
* foo's javadoc
|
||||
*/
|
||||
void foo();
|
||||
}
|
||||
|
||||
interface B extends Test {
|
||||
@Override
|
||||
void foo();
|
||||
}
|
||||
@@ -87,6 +87,14 @@ public class PushDownTest extends LightRefactoringTestCase {
|
||||
doTest(true);
|
||||
}
|
||||
|
||||
public void testJavadocWhenKeepAsAbstractInterface() throws Exception {
|
||||
doTestImplements(true);
|
||||
}
|
||||
|
||||
public void testJavadocWhenKeepAsAbstractClass() throws Exception {
|
||||
doTestImplements(true);
|
||||
}
|
||||
|
||||
private void doTest() {
|
||||
doTest(false);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user