mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-05-06 05:10:22 +07:00
generate public getter/setter for abstract classes (IDEA-102872)
(cherry picked from commit 61685b9d890fce99c050e1b98261527b7a0e9363)
This commit is contained in:
@@ -24,7 +24,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class AddDefaultConstructorFix extends AddMethodFix {
|
||||
public AddDefaultConstructorFix(PsiClass aClass) {
|
||||
this(aClass, PsiUtil.getMaximumModifierForMember(aClass));
|
||||
this(aClass, PsiUtil.getMaximumModifierForMember(aClass, false));
|
||||
}
|
||||
|
||||
public AddDefaultConstructorFix(PsiClass aClass, @NotNull @PsiModifier.ModifierConstant final String modifier) {
|
||||
|
||||
@@ -219,7 +219,8 @@ public class GenerateConstructorHandler extends GenerateMembersHandlerBase {
|
||||
CodeStyleManager codeStyleManager = CodeStyleManager.getInstance(manager.getProject());
|
||||
|
||||
PsiMethod constructor = factory.createConstructor(aClass.getName(), aClass);
|
||||
String modifier = PsiUtil.getMaximumModifierForMember(aClass);
|
||||
String modifier = PsiUtil.getMaximumModifierForMember(aClass, false);
|
||||
|
||||
if (modifier != null) {
|
||||
PsiUtil.setModifierProperty(constructor, modifier, true);
|
||||
}
|
||||
|
||||
@@ -722,9 +722,14 @@ public final class PsiUtil extends PsiUtilCore {
|
||||
|
||||
@PsiModifier.ModifierConstant
|
||||
public static String getMaximumModifierForMember(final PsiClass aClass) {
|
||||
return getMaximumModifierForMember(aClass, true);
|
||||
}
|
||||
|
||||
@PsiModifier.ModifierConstant
|
||||
public static String getMaximumModifierForMember(final PsiClass aClass, boolean allowPublicAbstract) {
|
||||
String modifier = PsiModifier.PUBLIC;
|
||||
|
||||
if (aClass.hasModifierProperty(PsiModifier.ABSTRACT) && !aClass.isEnum()) {
|
||||
if (!allowPublicAbstract && aClass.hasModifierProperty(PsiModifier.ABSTRACT) && !aClass.isEnum()) {
|
||||
modifier = PsiModifier.PROTECTED;
|
||||
}
|
||||
else if (aClass.hasModifierProperty(PsiModifier.PACKAGE_LOCAL)) {
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
// "Create setter for 's'" "true"
|
||||
public abstract class A {
|
||||
private String s;
|
||||
|
||||
public void setS(String s) {
|
||||
this.s = s;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
// "Create setter for 's'" "true"
|
||||
public abstract class A {
|
||||
private String <caret>s;
|
||||
}
|
||||
Reference in New Issue
Block a user