@Override
  protected void performRefactoring(UsageInfo @NotNull [] usageInfos) {

    final JavaPsiFacade psiFacade = JavaPsiFacade.getInstance(myProject);
    final PsiClass builderClass = myCreateNewBuilderClass
                                  ? createBuilderClass()
                                  : psiFacade.findClass(StringUtil.getQualifiedName(myPackageName, myClassName),
                                                        GlobalSearchScope.projectScope(myProject));
    if (builderClass == null) return;

    for (String propertyName : myParametersMap.keySet()) {
      final ParameterData parameterData = myParametersMap.get(propertyName);
      final PsiField field = createField(builderClass, parameterData);
      createSetter(builderClass, parameterData, field);
    }

    super.performRefactoring(usageInfos);

    final PsiMethod method = createMethodSignature(createMethodName());
    if (builderClass.findMethodBySignature(method, false) == null) {
      builderClass.add(method);
    }

    //fix visibilities
    final PsiMethod constructor = getWorkingConstructor();
    VisibilityUtil.escalateVisibility(constructor, builderClass);
    PsiClass containingClass = constructor.getContainingClass();
    while (containingClass != null) {
      VisibilityUtil.escalateVisibility(containingClass, builderClass);
      containingClass = containingClass.getContainingClass();
    }
  }
@Override
  protected void performRefactoring(UsageInfo @NotNull [] usageInfos)