Builder(Parameters parameters, IAnnotatedElement source, IFactory factory) {
this(source);
arity = Range.parameterArity(source);
required = arity.min > 0;
if (parameters == null) {
paramLabel = inferLabel(null, source.getName(), source.getTypeInfo());
} else {
paramLabel = inferLabel(parameters.paramLabel(), source.getName(), source.getTypeInfo());
hideParamSyntax = parameters.hideParamSyntax();
interactive = parameters.interactive();
description = parameters.description();
descriptionKey = parameters.descriptionKey();
splitRegex = parameters.split();
hidden = parameters.hidden();
defaultValue = parameters.defaultValue();
showDefaultValue = parameters.showDefaultValue();
if (factory != null) {
converters = DefaultFactory.createConverter(factory, parameters.converter());
if (!NoCompletionCandidates.class.equals(parameters.completionCandidates())) {
completionCandidates = DefaultFactory.createCompletionCandidates(factory, parameters.completionCandidates());
}
}
}
}
private static String inferLabel(String label, String fieldName, ITypeInfo typeInfo) {