protected void setupClassFromNewExpression(final @NotNull PsiClass aClass, final @NotNull PsiNewExpression newExpression) {
    final PsiJavaCodeReferenceElement classReference = newExpression.getClassReference();
    if (classReference != null && aClass.isPhysical()) {
      classReference.bindToElement(aClass);
    }
    setupInheritance(newExpression, aClass);

    PsiExpressionList argList = newExpression.getArgumentList();
    final Project project = aClass.getProject();
    if (argList != null && !argList.isEmpty()) {
      TemplateBuilderImpl templateBuilder = createConstructorTemplate(aClass, newExpression, argList);

      if (aClass.isPhysical()) {
        getReferenceElement(newExpression).bindToElement(aClass);
      }
      CreateFromUsageBaseFix.startTemplate(project, aClass, templateBuilder.buildTemplate(), getText());
    }
    else {
      CodeInsightUtil.positionCursor(project, aClass.getContainingFile(), ObjectUtils.notNull(aClass.getNameIdentifier(), aClass));
    }
  }
protected void setupClassFromNewExpression(final @NotNull PsiClass aClass, final @NotNull PsiNewExpression newExpression)