private void outputConstructor(@NonNls StringBuilder out) {
    out.append("\t").append(myVisibility).append(" ").append(className).append('(');
    for (Iterator<ParameterSpec> iterator = fields.iterator(); iterator.hasNext(); ) {
      final ParameterSpec field = iterator.next();
      final PsiParameter parameter = field.getParameter();
      outputAnnotationString(parameter, out);
      out.append(getSettings().getCustomSettings(JavaCodeStyleSettings.class).GENERATE_FINAL_PARAMETERS ?
                 " final " : "");
      final String parameterName = parameter.getName();
      final PsiType type = field.getType();
      final PsiType fieldType = parameter.isVarArgs() && type instanceof PsiArrayType ?
                                new PsiEllipsisType(((PsiArrayType)type).getComponentType()) : type;
      out.append(' ').append(fieldType.getCanonicalText()).append(' ').append(parameterName);
      if (iterator.hasNext()) {
        out.append(", ");
      }
    }
    out.append(")\n");
    out.append("\t{\n");
    for (final ParameterSpec field : fields) {
      generateFieldAssignment(out, field.getParameter().getName(), field.getName());
    }
    out.append("\t}\n");
  }
private void outputConstructor(@NonNls StringBuilder out)