@Override
  public @NotNull List<? extends GenerationInfo> generateMemberPrototypes(PsiClass aClass, ClassMember[] members) throws IncorrectOperationException {
    PsiElementFactory psiElementFactory = JavaPsiFacade.getElementFactory(aClass.getProject());
    try {
      String fieldName = getFieldName(aClass);
      PsiField psiField = psiElementFactory.createField(fieldName, myType);
      GenerationInfo[] infos = new GenerateGetterAndSetterHandler().generateMemberPrototypes(aClass, new PsiFieldMember(psiField));
      if (myAnnotations.length > 0) {
        PsiMember targetMember = null;
        if (myMemberType == PropertyMemberType.FIELD) {
          targetMember = psiField;
        }
        else {
          for (GenerationInfo info : infos) {
            PsiMember member = info.getPsiMember();
            if (!(member instanceof PsiMethod)) continue;
            if (myMemberType == PropertyMemberType.GETTER && PropertyUtilBase.isSimplePropertyGetter((PsiMethod)member) ||
                myMemberType == PropertyMemberType.SETTER && PropertyUtilBase.isSimplePropertySetter((PsiMethod)member)) {
              targetMember = member;
              break;
            }
          }
          if (targetMember == null) targetMember = findExistingMember(aClass, myMemberType);
        }
        PsiModifierList modifierList = targetMember != null? targetMember.getModifierList() : null;
        if (modifierList != null) {
          for (PsiAnnotation annotation : myAnnotations) {
            PsiAnnotation existing = modifierList.findAnnotation(annotation.getQualifiedName());
            if (existing != null) existing.replace(annotation);
            else modifierList.addAfter(annotation, null);
          }
        }
      }
      return ContainerUtil.concat(Collections.singletonList(new PsiGenerationInfo<>(psiField)), Arrays.asList(infos));
    }
    catch (IncorrectOperationException e) {
      assert false : e;
      return Collections.emptyList();
    }
  }
@Override
  public @NotNull List<? extends GenerationInfo> generateMemberPrototypes(PsiClass aClass, ClassMember[] members)