@SuppressWarnings("deprecation")
private void printOptionAnnotation(PrintWriter pw, OptionSpec spec, String indent) {
pw.printf("%s@%s", indent, importer.getImportedName(Option.class.getCanonicalName()));
indent = String.format(",%n%s ", indent);
String sep = "(";
sep = appendStringArray(pw, sep, indent, "names = %s", spec.names(), EMPTY_ARRAY);
sep = append(pw, sep, indent, "required = %s", spec.required(), false);
sep = append(pw, sep, indent, "help = %s", spec.help(), false);
sep = append(pw, sep, indent, "usageHelp = %s", spec.usageHelp(), false);
sep = append(pw, sep, indent, "versionHelp = %s", spec.versionHelp(), false);
sep = appendStringArray(pw, sep, indent, "description = %s", spec.description(), EMPTY_ARRAY);
sep = append(pw, sep, indent, "arity = \"%s\"", spec.arity().toString(), spec.arity().isUnspecified() ? spec.arity().toString() : "");
sep = append(pw, sep, indent, "paramLabel = \"%s\"", spec.paramLabel(), "<" + argElementName(spec) + ">");
sep = append(pw, sep, indent, "hideParamSyntax = %s", spec.hideParamSyntax(), false);
sep = appendTypeInfo(pw, sep, indent, spec.typeInfo());
sep = appendTypeConverter(pw, sep, indent, spec.converters());
sep = append(pw, sep, indent, "split = \"%s\"", spec.splitRegex(), "");
sep = append(pw, sep, indent, "hidden = %s", spec.hidden(), false);
sep = append(pw, sep, indent, "defaultValue = %s", spec.defaultValue() == null ? "__no_default_value__" : spec.defaultValue(), "__no_default_value__");
sep = append(pw, sep, indent, "showDefaultValue = \"%s\"", spec.showDefaultValue(), CommandLine.Help.Visibility.ON_DEMAND);
sep = appendCompletionCandidates(pw, sep, indent, spec);
sep = append(pw, sep, indent, "interactive = %s", spec.interactive(), false);
sep = append(pw, sep, indent, "descriptionKey = \"%s\"", spec.descriptionKey(), "");
if (!"(".equals(sep)) {
pw.print(")");
}
}