static PositionalParamSpec extractPositionalParamSpec(TypedMember member, IFactory factory) { PositionalParamSpec.Builder builder = PositionalParamSpec.builder(); initCommon(builder, member); Range arity = Range.parameterArity(member); builder.arity(arity); builder.index(Range.parameterIndex(member)); builder.capacity(Range.parameterCapacity(member)); builder.required(arity.min > 0); Parameters parameters = member.getAnnotation(Parameters.class); builder.interactive(parameters.interactive()); Class<?>[] elementTypes = inferTypes(member.getType(), parameters.type(), member.getGenericType()); builder.auxiliaryTypes(elementTypes); builder.paramLabel(inferLabel(parameters.paramLabel(), member.name(), member.getType(), elementTypes)); builder.hideParamSyntax(parameters.hideParamSyntax()); builder.description(parameters.description()); builder.descriptionKey(parameters.descriptionKey()); builder.splitRegex(parameters.split()); builder.hidden(parameters.hidden()); builder.defaultValue(parameters.defaultValue()); builder.converters(DefaultFactory.createConverter(factory, parameters.converter())); builder.showDefaultValue(parameters.showDefaultValue()); if (!NoCompletionCandidates.class.equals(parameters.completionCandidates())) { builder.completionCandidates(DefaultFactory.createCompletionCandidates(factory, parameters.completionCandidates())); } return builder.build(); } static PositionalParamSpec extractUnannotatedPositionalParamSpec(TypedMember member, IFactory factory) {
.converters(converter) .initialValue("ABC") .showDefaultValue(Visibility.NEVER) .index("3..4") .withToString("TOSTRING"); assertSame(converter, builder.converters()[0]); assertEquals("ABC", builder.initialValue()); assertEquals(Visibility.NEVER, builder.showDefaultValue()); assertEquals("TOSTRING", builder.toString()); assertEquals(Range.valueOf("3..4"), builder.index());
static PositionalParamSpec extractUnannotatedPositionalParamSpec(TypedMember member, IFactory factory) { PositionalParamSpec.Builder builder = PositionalParamSpec.builder(); initCommon(builder, member); Range arity = Range.parameterArity(member); builder.arity(arity); builder.index(Range.parameterIndex(member)); builder.capacity(Range.parameterCapacity(member)); builder.required(arity.min > 0); builder.interactive(false); Class<?>[] elementTypes = inferTypes(member.getType(), new Class<?>[] {}, member.getGenericType()); builder.auxiliaryTypes(elementTypes); builder.paramLabel(inferLabel(null, member.name(), member.getType(), elementTypes)); builder.hideParamSyntax(false); builder.description(new String[0]); builder.splitRegex(""); builder.hidden(false); builder.defaultValue(null); builder.converters(); builder.showDefaultValue(Help.Visibility.ON_DEMAND); return builder.build(); } private static void initCommon(ArgSpec.Builder<?> builder, TypedMember member) {
.converters(converter) .initialValue("ABC") .showDefaultValue(Visibility.NEVER) .index("3..4") .withToString("TOSTRING"); assertSame(converter, builder.converters()[0]); assertEquals("ABC", builder.initialValue()); assertEquals(Visibility.NEVER, builder.showDefaultValue()); assertEquals("TOSTRING", builder.toString()); assertEquals(Range.valueOf("3..4"), builder.index());