mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 22:51:17 +07:00
move inner to interface: strip static modifier
This commit is contained in:
@@ -192,7 +192,7 @@ public class MoveMembersProcessor extends BaseRefactoringProcessor {
|
|||||||
PsiMember newMember=handler.doMove(myOptions, member, anchors.get(member), targetClass);
|
PsiMember newMember=handler.doMove(myOptions, member, anchors.get(member), targetClass);
|
||||||
elementListener.elementMoved(newMember);
|
elementListener.elementMoved(newMember);
|
||||||
|
|
||||||
fixVisibility(newMember, usages);
|
fixModifierList(newMember, usages);
|
||||||
for (PsiReference reference : refsToBeRebind) {
|
for (PsiReference reference : refsToBeRebind) {
|
||||||
reference.bindToElement(newMember);
|
reference.bindToElement(newMember);
|
||||||
}
|
}
|
||||||
@@ -213,13 +213,16 @@ public class MoveMembersProcessor extends BaseRefactoringProcessor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void fixVisibility(PsiMember newMember, final UsageInfo[] usages) throws IncorrectOperationException {
|
private void fixModifierList(PsiMember newMember, final UsageInfo[] usages) throws IncorrectOperationException {
|
||||||
PsiModifierList modifierList = newMember.getModifierList();
|
PsiModifierList modifierList = newMember.getModifierList();
|
||||||
|
|
||||||
if(myTargetClass.isInterface()) {
|
if(myTargetClass.isInterface()) {
|
||||||
modifierList.setModifierProperty(PsiModifier.PUBLIC, false);
|
modifierList.setModifierProperty(PsiModifier.PUBLIC, false);
|
||||||
modifierList.setModifierProperty(PsiModifier.PROTECTED, false);
|
modifierList.setModifierProperty(PsiModifier.PROTECTED, false);
|
||||||
modifierList.setModifierProperty(PsiModifier.PRIVATE, false);
|
modifierList.setModifierProperty(PsiModifier.PRIVATE, false);
|
||||||
|
if (newMember instanceof PsiClass) {
|
||||||
|
modifierList.setModifierProperty(PsiModifier.STATIC, false);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
public class A {
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
public interface B {
|
||||||
|
Inner i = new Inner();
|
||||||
|
|
||||||
|
class Inner {
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
return o instanceof Inner;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
public class C {
|
||||||
|
B.Inner i = new B.Inner();
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
public class A {
|
||||||
|
public static class Inner {
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
return o instanceof Inner;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
public interface B {
|
||||||
|
A.Inner i = new A.Inner();
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
public class C {
|
||||||
|
A.Inner i = new A.Inner();
|
||||||
|
}
|
||||||
@@ -98,6 +98,10 @@ public class MoveMembersTest extends MultiFileTestCase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testInnerToInterface() throws Exception {
|
||||||
|
doTest("A", "B", 0);
|
||||||
|
}
|
||||||
|
|
||||||
protected String getTestRoot() {
|
protected String getTestRoot() {
|
||||||
return "/refactoring/moveMembers/";
|
return "/refactoring/moveMembers/";
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user