private IType NormalizeSequenceType(SequenceType sequenceType)
 {
     sequenceType.ElementType = NormalizeType(sequenceType.ElementType);
     sequenceType.NameFormat = "IList<{0}>";
     return sequenceType;
 }
Пример #2
0
 private IType NormalizeSequenceType(SequenceType sequenceType)
 {
     sequenceType.ElementType = NormalizeTypeReference(sequenceType.ElementType);
     sequenceType.NameFormat = "list";
     return sequenceType;
 }
Пример #3
0
 private IType NormalizeSequenceType(SequenceType sequenceType)
 {
     sequenceType.ElementType = NormalizeTypeReference(sequenceType.ElementType);
     if (sequenceType.ElementType.IsValueType())
     {
         sequenceType.NameFormat = "IList<{0}?>";
     }
     else
     {
         sequenceType.NameFormat = "IList<{0}>";
     }
     return sequenceType;
 }
Пример #4
0
 private IType NormalizeSequenceType(SequenceType sequenceType)
 {
     sequenceType.ElementType = WrapPrimitiveType(NormalizeTypeReference(sequenceType.ElementType));
     sequenceType.NameFormat = "List<{0}>";
     return sequenceType;
 }
Пример #5
0
 public SequenceTypeModel(SequenceType sequenceType)
     : base()
 {
     this.LoadFrom(sequenceType);
 }
Пример #6
0
        /// <summary>
        /// Changes paginated method signatures to return Page type.
        /// </summary>
        /// <param name="serviceClient"></param>
        /// <param name="pageClasses"></param>
        public virtual void NormalizePaginatedMethods(ServiceClient serviceClient, IDictionary<KeyValuePair<string, string>, string> pageClasses)
        {
            if (serviceClient == null)
            {
                throw new ArgumentNullException("serviceClient");
            }

            var convertedTypes = new Dictionary<IType, IType>();

            foreach (var method in serviceClient.Methods.Where(m => m.Extensions.ContainsKey(AzureExtensions.PageableExtension)))
            {
                string nextLinkString;
                string pageClassName = GetPagingSetting(method.Extensions, pageClasses, out nextLinkString);
                if (string.IsNullOrEmpty(pageClassName))
                {
                    continue;
                }
                if (string.IsNullOrEmpty(nextLinkString))
                {
                    method.Extensions[AzureExtensions.PageableExtension] = null;
                }

                foreach (var responseStatus in method.Responses.Where(r => r.Value.Body is CompositeType).Select(s => s.Key).ToArray())
                {
                    var compositType = (CompositeType)method.Responses[responseStatus].Body;
                    var sequenceType = compositType.Properties.Select(p => p.Type).FirstOrDefault(t => t is SequenceType) as SequenceType;

                    // if the type is a wrapper over page-able response
                    if (sequenceType != null)
                    {
                        IType pagedResult;
                        pagedResult = new SequenceType
                        {
                            ElementType = sequenceType.ElementType,
                            NameFormat = "List<{0}>"
                        };

                        convertedTypes[method.Responses[responseStatus].Body] = pagedResult;
                        method.Responses[responseStatus] = new Response(pagedResult, method.Responses[responseStatus].Headers);
                    }
                }

                if (convertedTypes.ContainsKey(method.ReturnType.Body))
                {
                    method.ReturnType = new Response(convertedTypes[method.ReturnType.Body], method.ReturnType.Headers);
                }
            }

            AzureExtensions.RemoveUnreferencedTypes(serviceClient, convertedTypes.Keys.Cast<CompositeType>().Select(t => t.Name));
        }
 public AzureSequenceTypeModel(SequenceType javaSequenceType)
     : base(javaSequenceType)
 {
 }