Builder(Option option, IAnnotatedElement source, IFactory factory) { this(source); arity = Range.optionArity(source); required = option.required(); paramLabel = inferLabel(option.paramLabel(), source.getName(), source.getTypeInfo()); hideParamSyntax = option.hideParamSyntax(); interactive = option.interactive(); description = option.description(); descriptionKey = option.descriptionKey(); splitRegex = option.split(); hidden = option.hidden(); defaultValue = option.defaultValue(); showDefaultValue = option.showDefaultValue(); if (factory != null) { converters = DefaultFactory.createConverter(factory, option.converter()); if (!NoCompletionCandidates.class.equals(option.completionCandidates())) { completionCandidates = DefaultFactory.createCompletionCandidates(factory, option.completionCandidates()); } } } Builder(Parameters parameters, IAnnotatedElement source, IFactory factory) {
Builder(Parameters parameters, IAnnotatedElement source, IFactory factory) { this(source); arity = Range.parameterArity(source); required = arity.min > 0; // method parameters may be positional parameters without @Parameters annotation 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) { // annotation processors will pass a null factory 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) {