void (@NotNull ActionContext context, @NotNull PsiClass aClass, @NotNull ModPsiUpdater updater) { final PsiElement lBrace = aClass.getLBrace(); int offset = (lBrace == null ? aClass : lBrace).getTextRange().getStartOffset(); List<? extends GenerationInfo> prototypes = new GenerateFieldOrPropertyHandler(myName, myType, myMemberType, myAnnotations) .generateMemberPrototypes(aClass, ClassMember.EMPTY_ARRAY); prototypes = GenerateMembersUtil.insertMembersAtOffset(aClass, offset, prototypes); if (prototypes.isEmpty()) return; final PsiElement scope = Objects.requireNonNull(prototypes.get(0).getPsiMember()).getContext(); assert scope != null; ModTemplateBuilder builder = updater.templateBuilder(); boolean first = true; @NonNls final String TYPE_NAME_VAR = "TYPE_NAME_VAR"; for (GenerationInfo prototype : prototypes) { final PsiTypeElement typeElement = PropertyUtilBase.getPropertyTypeElement(prototype.getPsiMember()); if (typeElement == null) continue; if (first) { first = false; builder.field(typeElement, myType.getCanonicalText()); } else { builder.field(typeElement, TYPE_NAME_VAR, TYPE_NAME_VAR, false); } } }