diff --git a/java/java-impl/src/com/intellij/refactoring/memberPushDown/PushDownProcessor.java b/java/java-impl/src/com/intellij/refactoring/memberPushDown/PushDownProcessor.java index d5e22eb5a552..ca3298bc97b2 100644 --- a/java/java-impl/src/com/intellij/refactoring/memberPushDown/PushDownProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/memberPushDown/PushDownProcessor.java @@ -431,6 +431,11 @@ public class PushDownProcessor extends BaseRefactoringProcessor { PsiMember newMember = null; if (member instanceof PsiField) { ((PsiField)member).normalizeDeclaration(); + if (myClass.isInterface() && !targetClass.isInterface()) { + PsiUtil.setModifierProperty(member, PsiModifier.PUBLIC, true); + PsiUtil.setModifierProperty(member, PsiModifier.STATIC, true); + PsiUtil.setModifierProperty(member, PsiModifier.FINAL, true); + } newMember = (PsiMember)targetClass.add(member); } else if (member instanceof PsiMethod) { diff --git a/java/java-tests/testData/refactoring/pushDown/InterfaceConstants.java b/java/java-tests/testData/refactoring/pushDown/InterfaceConstants.java new file mode 100644 index 000000000000..d510a849def2 --- /dev/null +++ b/java/java-tests/testData/refactoring/pushDown/InterfaceConstants.java @@ -0,0 +1,7 @@ +interface SimpleDialogPresenter { + int BUTTON_POSITIVE = 1; + int BUTTON_NEGATIVE = 2; + int BUTTON_NEUTRAL = 3; +} + +class SimpleDialogPresenterImpl implements SimpleDialogPresenter {} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/pushDown/InterfaceConstants_after.java b/java/java-tests/testData/refactoring/pushDown/InterfaceConstants_after.java new file mode 100644 index 000000000000..4a7044e4ae94 --- /dev/null +++ b/java/java-tests/testData/refactoring/pushDown/InterfaceConstants_after.java @@ -0,0 +1,8 @@ +interface SimpleDialogPresenter { + int BUTTON_NEGATIVE = 2; + int BUTTON_NEUTRAL = 3; +} + +class SimpleDialogPresenterImpl implements SimpleDialogPresenter { + public static final int BUTTON_POSITIVE = 1; +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/refactoring/PushDownTest.java b/java/java-tests/testSrc/com/intellij/refactoring/PushDownTest.java index e2ca92ddffd0..299a6468f4f7 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/PushDownTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/PushDownTest.java @@ -60,6 +60,8 @@ public class PushDownTest extends LightRefactoringTestCase { public void testFunctionalInterface() { doTest(true);} public void testFunctionalExpressionDefaultMethod() { doTest();} + public void testInterfaceConstants() { doTest();} + private void doTest() { doTest(false); }