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) {
@Test public void testPositionalParamSpecEquals() { PositionalParamSpec.Builder positional = PositionalParamSpec.builder() .arity("1") .hideParamSyntax(true) .required(true) .splitRegex(";") .description("desc") .descriptionKey("key") .auxiliaryTypes(Integer.class, Double.class) .index("1..3"); PositionalParamSpec p1 = positional.build(); assertEquals(p1, p1); assertEquals(p1, positional.build()); assertNotEquals(p1, positional.arity("2").build()); assertNotEquals(p1, positional.arity("1").hideParamSyntax(false).build()); assertNotEquals(p1, positional.hideParamSyntax(true).required(false).build()); assertNotEquals(p1, positional.required(true).splitRegex(",").build()); assertNotEquals(p1, positional.splitRegex(";").description("xyz").build()); assertNotEquals(p1, positional.description("desc").descriptionKey("XX").build()); assertNotEquals(p1, positional.descriptionKey("key").auxiliaryTypes(Short.class).build()); assertEquals(p1, positional.auxiliaryTypes(Integer.class, Double.class).build()); assertNotEquals(p1, positional.index("0..*").build()); assertEquals(p1, positional.index("1..3").build()); } }
@Test public void testArgSpecEquals() { PositionalParamSpec.Builder positional = PositionalParamSpec.builder() .arity("1") .hideParamSyntax(true) .required(true) .splitRegex(";") .description("desc") .descriptionKey("key") .auxiliaryTypes(Integer.class, Double.class); PositionalParamSpec p1 = positional.build(); assertEquals(p1, p1); assertEquals(p1, positional.build()); assertNotEquals(p1, positional.arity("2").build()); assertNotEquals(p1, positional.arity("1").hideParamSyntax(false).build()); assertNotEquals(p1, positional.hideParamSyntax(true).required(false).build()); assertNotEquals(p1, positional.required(true).splitRegex(",").build()); assertNotEquals(p1, positional.splitRegex(";").description("xyz").build()); assertNotEquals(p1, positional.description("desc").descriptionKey("XX").build()); assertNotEquals(p1, positional.descriptionKey("key").auxiliaryTypes(Short.class).build()); assertEquals(p1, positional.auxiliaryTypes(Integer.class, Double.class).build()); }
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) {
@Test public void testArgSpecBuilderHideParamSyntax() { PositionalParamSpec.Builder positional = PositionalParamSpec.builder() .hideParamSyntax(true); assertEquals(true, positional.hideParamSyntax()); assertEquals(false, positional.hideParamSyntax(false).hideParamSyntax()); }
@Test public void testArgSpecEquals() { PositionalParamSpec.Builder positional = PositionalParamSpec.builder() .arity("1") .hideParamSyntax(true) .required(true) .splitRegex(";") .description("desc") .descriptionKey("key") .auxiliaryTypes(Integer.class, Double.class); PositionalParamSpec p1 = positional.build(); assertEquals(p1, p1); assertEquals(p1, positional.build()); assertNotEquals(p1, positional.arity("2").build()); assertNotEquals(p1, positional.arity("1").hideParamSyntax(false).build()); assertNotEquals(p1, positional.hideParamSyntax(true).required(false).build()); assertNotEquals(p1, positional.required(true).splitRegex(",").build()); assertNotEquals(p1, positional.splitRegex(";").description("xyz").build()); assertNotEquals(p1, positional.description("desc").descriptionKey("XX").build()); assertNotEquals(p1, positional.descriptionKey("key").auxiliaryTypes(Short.class).build()); assertEquals(p1, positional.auxiliaryTypes(Integer.class, Double.class).build()); }
@Test public void testPositionalParamSpecEquals() { PositionalParamSpec.Builder positional = PositionalParamSpec.builder() .arity("1") .hideParamSyntax(true) .required(true) .splitRegex(";") .description("desc") .descriptionKey("key") .auxiliaryTypes(Integer.class, Double.class) .index("1..3"); PositionalParamSpec p1 = positional.build(); assertEquals(p1, p1); assertEquals(p1, positional.build()); assertNotEquals(p1, positional.arity("2").build()); assertNotEquals(p1, positional.arity("1").hideParamSyntax(false).build()); assertNotEquals(p1, positional.hideParamSyntax(true).required(false).build()); assertNotEquals(p1, positional.required(true).splitRegex(",").build()); assertNotEquals(p1, positional.splitRegex(";").description("xyz").build()); assertNotEquals(p1, positional.description("desc").descriptionKey("XX").build()); assertNotEquals(p1, positional.descriptionKey("key").auxiliaryTypes(Short.class).build()); assertEquals(p1, positional.auxiliaryTypes(Integer.class, Double.class).build()); assertNotEquals(p1, positional.index("0..*").build()); assertEquals(p1, positional.index("1..3").build()); } }
@Test public void testArgSpecBuilderHideParamSyntax() { PositionalParamSpec.Builder positional = PositionalParamSpec.builder() .hideParamSyntax(true); assertEquals(true, positional.hideParamSyntax()); assertEquals(false, positional.hideParamSyntax(false).hideParamSyntax()); }