@Test public void testDefaultArity_Field() throws Exception { class ImplicitBoolField { @Option(names = "-x") boolean x; @Option(names = "-y") int y; @Option(names = "-z") List<String> z; @Parameters boolean a; @Parameters int b; @Parameters List<String> c; } assertEquals(Range.valueOf("0"), Range.defaultArity(ImplicitBoolField.class.getDeclaredField("x"))); assertEquals(Range.valueOf("1"), Range.defaultArity(ImplicitBoolField.class.getDeclaredField("y"))); assertEquals(Range.valueOf("1"), Range.defaultArity(ImplicitBoolField.class.getDeclaredField("z"))); assertEquals(Range.valueOf("1"), Range.defaultArity(ImplicitBoolField.class.getDeclaredField("a"))); assertEquals(Range.valueOf("1"), Range.defaultArity(ImplicitBoolField.class.getDeclaredField("b"))); assertEquals(Range.valueOf("0..1"), Range.defaultArity(ImplicitBoolField.class.getDeclaredField("c"))); }
@Test public void testDefaultArity_Field() throws Exception { class ImplicitBoolField { @Option(names = "-x") boolean x; @Option(names = "-y") int y; @Option(names = "-z") List<String> z; @Parameters boolean a; @Parameters int b; @Parameters List<String> c; } assertEquals(Range.valueOf("0"), Range.defaultArity(ImplicitBoolField.class.getDeclaredField("x"))); assertEquals(Range.valueOf("1"), Range.defaultArity(ImplicitBoolField.class.getDeclaredField("y"))); assertEquals(Range.valueOf("1"), Range.defaultArity(ImplicitBoolField.class.getDeclaredField("z"))); assertEquals(Range.valueOf("1"), Range.defaultArity(ImplicitBoolField.class.getDeclaredField("a"))); assertEquals(Range.valueOf("1"), Range.defaultArity(ImplicitBoolField.class.getDeclaredField("b"))); assertEquals(Range.valueOf("0..1"), Range.defaultArity(ImplicitBoolField.class.getDeclaredField("c"))); }
static Range adjustForType(Range result, TypedMember member) { return result.isUnspecified ? defaultArity(member) : result; } /** Returns the default arity {@code Range}: for {@link Option options} this is 0 for booleans and 1 for
@SuppressWarnings("deprecation") @Test public void testDefaultArity_Class() { assertEquals(Range.valueOf("0"), Range.defaultArity(Boolean.TYPE)); assertEquals(Range.valueOf("0"), Range.defaultArity(Boolean.class)); assertEquals(Range.valueOf("1"), Range.defaultArity(Integer.TYPE)); assertEquals(Range.valueOf("1"), Range.defaultArity(Integer.class)); assertEquals(Range.valueOf("1"), Range.defaultArity(List.class)); assertEquals(Range.valueOf("1"), Range.defaultArity(String[].class)); assertEquals(Range.valueOf("1"), Range.defaultArity(Map.class)); }
/** Returns the default arity {@code Range}: for {@link Option options} this is 0 for booleans and 1 for * other types, for {@link Parameters parameters} booleans have arity 0, arrays or Collections have * arity "0..*", and other types have arity 1. * @param field the field whose default arity to return * @return a new {@code Range} indicating the default arity of the specified field * @since 2.0 */ public static Range defaultArity(Field field) { return defaultArity(new TypedMember(field)); } private static Range defaultArity(TypedMember member) {
static Range adjustForType(Range result, IAnnotatedElement member) { return result.isUnspecified ? defaultArity(member) : result; } /** Returns the default arity {@code Range}: for {@link Option options} this is 0 for booleans and 1 for
/** Returns the default arity {@code Range}: for {@link Option options} this is 0 for booleans and 1 for * other types, for {@link Parameters parameters} booleans have arity 0, arrays or Collections have * arity "0..*", and other types have arity 1. * @param field the field whose default arity to return * @return a new {@code Range} indicating the default arity of the specified field * @since 2.0 */ public static Range defaultArity(Field field) { return defaultArity(new TypedMember(field)); } private static Range defaultArity(IAnnotatedElement member) {
@SuppressWarnings("deprecation") @Test public void testDefaultArity_Class() { assertEquals(Range.valueOf("0"), Range.defaultArity(Boolean.TYPE)); assertEquals(Range.valueOf("0"), Range.defaultArity(Boolean.class)); assertEquals(Range.valueOf("1"), Range.defaultArity(Integer.TYPE)); assertEquals(Range.valueOf("1"), Range.defaultArity(Integer.class)); assertEquals(Range.valueOf("1"), Range.defaultArity(List.class)); assertEquals(Range.valueOf("1"), Range.defaultArity(String[].class)); assertEquals(Range.valueOf("1"), Range.defaultArity(Map.class)); }