private static IParameterShape CreateNamedCollectionParameterShape ( OptionAttribute optionAttribute, RangeAttribute?rangeAttribute, ParameterInfo parameter ) { var description = parameter.GetDescriptionOrDefault(); IParameterShape newNamedParameter; if (optionAttribute.ShortName is null) { newNamedParameter = new NamedCollectionParameterShape ( parameter, optionAttribute.LongName ?? throw new InvalidOperationException(), rangeAttribute?.GetMin(), rangeAttribute?.GetMax(), description ); } else if (optionAttribute.LongName is null) { newNamedParameter = new NamedCollectionParameterShape ( parameter, optionAttribute.ShortName ?? throw new InvalidOperationException(), rangeAttribute?.GetMin(), rangeAttribute?.GetMax(), description ); } else { newNamedParameter = new NamedCollectionParameterShape ( parameter, optionAttribute.ShortName ?? throw new InvalidOperationException(), optionAttribute.LongName ?? throw new InvalidOperationException(), rangeAttribute?.GetMin(), rangeAttribute?.GetMax(), description ); } return(newNamedParameter); }
private static IParameterShape CreatePositionalParameterShape ( RangeAttribute?rangeAttribute, ParameterInfo parameter ) { var description = parameter.GetDescriptionOrDefault(); var isCollection = parameter.ParameterType.IsSupportedCollection(); IParameterShape newPositionalParameter; if (!isCollection) { var greedyAttribute = parameter.GetCustomAttribute <GreedyAttribute>(); newPositionalParameter = greedyAttribute is null ? new PositionalParameterShape(parameter, description) : new PositionalGreedyParameterShape(parameter, description); } else { newPositionalParameter = new PositionalCollectionParameterShape ( parameter, rangeAttribute?.GetMin(), rangeAttribute?.GetMax(), description ); } return(newPositionalParameter); }