if (editor != null) {
new WriteCommandAction(project, psiFile) {
protected void run(Result result) throws Throwable {
final PsiElementFactory psiElementFactory = JavaPsiFacade.getInstance(myClass.getProject()).getElementFactory();
final PsiField psiField = psiElementFactory.createField(myName, myType);
final PsiModifierList modifierList = psiField.getModifierList();
if (null != modifierList) {
for (@Modifier String modifier : myModifiers) {
modifierList.setModifierProperty(modifier, true);
}
}
if (null != myInitializerText) {
PsiExpression psiInitializer = psiElementFactory.createExpressionFromText(myInitializerText, psiField);
psiField.setInitializer(psiInitializer);
}
final List<PsiGenerationInfo<PsiField>> generationInfos = GenerateMembersUtil.insertMembersAtOffset(myClass.getContainingFile(), editor.getCaretModel().getOffset(),
Collections.singletonList(new PsiGenerationInfo<PsiField>(psiField)));
if (!generationInfos.isEmpty()) {
PsiField psiMember = generationInfos.iterator().next().getPsiMember();
editor.getCaretModel().moveToOffset(psiMember.getTextRange().getEndOffset());
}
UndoUtil.markPsiFileForUndo(psiFile);
}