mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
getter/setter: show error notification if template was wrong
This commit is contained in:
+4
@@ -36,6 +36,7 @@ import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.Nls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.java.generate.exception.GenerateCodeException;
|
||||
import org.jetbrains.java.generate.template.TemplateResource;
|
||||
import org.jetbrains.java.generate.template.TemplatesManager;
|
||||
import org.jetbrains.java.generate.view.TemplatesPanel;
|
||||
@@ -160,6 +161,9 @@ public abstract class GenerateGetterSetterHandlerBase extends GenerateMembersHan
|
||||
try {
|
||||
return generateMemberPrototypes(aClass, member).length > 0;
|
||||
}
|
||||
catch (GenerateCodeException e) {
|
||||
return true;
|
||||
}
|
||||
catch (IncorrectOperationException e) {
|
||||
LOG.error(e);
|
||||
return false;
|
||||
|
||||
@@ -52,7 +52,7 @@ import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.java.generate.GenerationUtil;
|
||||
import org.jetbrains.java.generate.element.GenerationHelper;
|
||||
import org.jetbrains.java.generate.exception.GenerateCodeException;
|
||||
import org.jetbrains.java.generate.template.TemplatesManager;
|
||||
|
||||
import java.util.*;
|
||||
@@ -621,20 +621,28 @@ public class GenerateMembersUtil {
|
||||
}
|
||||
|
||||
public static PsiMethod generateGetterPrototype(@NotNull PsiField field) {
|
||||
return generatePrototype(field, field.getContainingClass(), GetterTemplatesManager.getInstance());
|
||||
return generateGetterPrototype(field, true);
|
||||
}
|
||||
|
||||
public static PsiMethod generateSetterPrototype(@NotNull PsiField field) {
|
||||
return generateSetterPrototype(field, field.getContainingClass());
|
||||
return generateSetterPrototype(field, true);
|
||||
}
|
||||
|
||||
public static PsiMethod generateSetterPrototype(@NotNull PsiField field, PsiClass aClass) {
|
||||
return generatePrototype(field, aClass, SetterTemplatesManager.getInstance());
|
||||
return generatePrototype(field, aClass, true, SetterTemplatesManager.getInstance());
|
||||
}
|
||||
|
||||
static PsiMethod generateGetterPrototype(@NotNull PsiField field, boolean ignoreInvalidTemplate) {
|
||||
return generatePrototype(field, field.getContainingClass(), ignoreInvalidTemplate, GetterTemplatesManager.getInstance());
|
||||
}
|
||||
|
||||
static PsiMethod generateSetterPrototype(@NotNull PsiField field, boolean ignoreInvalidTemplate) {
|
||||
return generatePrototype(field, field.getContainingClass(), ignoreInvalidTemplate, SetterTemplatesManager.getInstance());
|
||||
}
|
||||
|
||||
private static PsiMethod generatePrototype(@NotNull PsiField field,
|
||||
PsiClass psiClass,
|
||||
TemplatesManager templatesManager) {
|
||||
boolean ignoreInvalidTemplate, TemplatesManager templatesManager) {
|
||||
Project project = field.getProject();
|
||||
PsiElementFactory factory = JavaPsiFacade.getInstance(project).getElementFactory();
|
||||
final String methodText = GenerationUtil.velocityGenerateCode(psiClass, Collections.singletonList(field),
|
||||
@@ -646,9 +654,14 @@ public class GenerateMembersUtil {
|
||||
result = factory.createMethodFromText(methodText, psiClass);
|
||||
}
|
||||
catch (IncorrectOperationException e) {
|
||||
LOG.info(e);
|
||||
result = templatesManager instanceof GetterTemplatesManager ? PropertyUtil.generateGetterPrototype(field)
|
||||
: PropertyUtil.generateSetterPrototype(field);
|
||||
if (ignoreInvalidTemplate) {
|
||||
LOG.info(e);
|
||||
result = templatesManager instanceof GetterTemplatesManager ? PropertyUtil.generateGetterPrototype(field)
|
||||
: PropertyUtil.generateSetterPrototype(field);
|
||||
}
|
||||
else {
|
||||
throw new GenerateCodeException(e);
|
||||
}
|
||||
}
|
||||
result = (PsiMethod)CodeStyleManager.getInstance(project).reformat(result);
|
||||
PropertyUtil.annotateWithNullableStuff(field, result);
|
||||
|
||||
+1
-1
@@ -52,7 +52,7 @@ public abstract class GetterSetterPrototypeProvider {
|
||||
return generateGetter ? provider.generateGetters(field) : provider.generateSetters(field);
|
||||
}
|
||||
}
|
||||
return new PsiMethod[]{generateGetter ? GenerateMembersUtil.generateGetterPrototype(field) : GenerateMembersUtil.generateSetterPrototype(field)};
|
||||
return new PsiMethod[]{generateGetter ? GenerateMembersUtil.generateGetterPrototype(field, false) : GenerateMembersUtil.generateSetterPrototype(field, false)};
|
||||
}
|
||||
|
||||
public static boolean isReadOnlyProperty(PsiField field) {
|
||||
|
||||
Reference in New Issue
Block a user