private static Range parameterIndex(IAnnotatedElement member) { if (member.isAnnotationPresent(Parameters.class)) { Range result = Range.valueOf(member.getAnnotation(Parameters.class).index()); if (!result.isUnspecified) { return result; } } if (member.isMethodParameter()) { int min = member.getMethodParamPosition(); int max = member.isMultiValue() ? Integer.MAX_VALUE : min; return new Range(min, max, member.isMultiValue(), false, ""); } return Range.valueOf("*"); // the default } static Range adjustForType(Range result, IAnnotatedElement member) {
private Builder(IAnnotatedElement member, IFactory factory) { super(member.getAnnotation(Option.class), member, factory); Option option = member.getAnnotation(Option.class); names = option.names(); help = option.help(); usageHelp = option.usageHelp(); versionHelp = option.versionHelp(); order = option.order(); }
private Builder(IAnnotatedElement member, IFactory factory) { super(member.getAnnotation(Parameters.class), member, factory); index = Range.parameterIndex(member); capacity = Range.parameterCapacity(member); } /** Returns a valid {@code PositionalParamSpec} instance. */
private static Range parameterArity(IAnnotatedElement member) { if (member.isAnnotationPresent(Parameters.class)) { return adjustForType(Range.valueOf(member.getAnnotation(Parameters.class).arity()), member); } else { return member.isMethodParameter() ? adjustForType(Range.valueOf(""), member) : new Range(0, 0, false, true, "0"); } } /** Returns a new {@code Range} based on the {@link Parameters#index()} annotation on the specified field.
private static Range optionArity(IAnnotatedElement member) { return member.isAnnotationPresent(Option.class) ? adjustForType(Range.valueOf(member.getAnnotation(Option.class).arity()), member) : new Range(0, 0, false, true, "0"); } /** Returns a new {@code Range} based on the {@link Parameters#arity()} annotation on the specified field,