public override ObjectVersionList Deserialize()

in sdk/Transform/ListObjectVersionsResponseDeserializer.cs [20:97]


        public override ObjectVersionList Deserialize(ServiceResponse xmlStream)
        {
            var model = ContentDeserializer.Deserialize(xmlStream.Content);
            string encodeType = model.EncodingType == null ?
                                string.Empty : model.EncodingType.ToLowerInvariant();

            var result = new ObjectVersionList(model.Name)
            {
                Delimiter = Decode(model.Delimiter, encodeType),
                Prefix = Decode(model.Prefix, encodeType),
                KeyMarker = Decode(model.KeyMarker, encodeType),
                NextKeyMarker = Decode(model.NextKeyMarker, encodeType),
                VersionIdMarker = model.VersionIdMarker,
                NextVersionIdMarker = model.NextVersionIdMarker
            };

            if (model.MaxKeys.HasValue)
                result.MaxKeys = model.MaxKeys.Value;
            if (model.IsTruncated.HasValue)
                result.IsTruncated = model.IsTruncated.Value;

            if (model.ObjectVersions != null)
            {
                foreach(var objectVersion in model.ObjectVersions)
                {
                    var summary = new ObjectVersionSummary
                    {
                        BucketName = model.Name,
                        Key = Decode(objectVersion.Key, encodeType),
                        VersionId = objectVersion.VersionId,
                        IsLatest = objectVersion.IsLatest,
                        LastModified = objectVersion.LastModified,
                        ETag = objectVersion.ETag != null ? OssUtils.TrimQuotes(objectVersion.ETag) : string.Empty,
                        Size = objectVersion.Size,
                        StorageClass = objectVersion.StorageClass,
                        Type = objectVersion.Type,
                        Owner = objectVersion.Owner != null ? 
                                new Owner(objectVersion.Owner.Id, objectVersion.Owner.DisplayName) : null
                    };

                    result.AddObjectVersionSummary(summary);
                }
            }

            if (model.ObjectDeleteMarkers != null)
            {
                foreach (var deleteMarker in model.ObjectDeleteMarkers)
                {
                    var summary = new DeleteMarkerSummary
                    {
                        BucketName = model.Name,
                        Key = Decode(deleteMarker.Key, encodeType),
                        VersionId = deleteMarker.VersionId,
                        IsLatest = deleteMarker.IsLatest,
                        LastModified = deleteMarker.LastModified,
                        Owner = deleteMarker.Owner != null ?
                                new Owner(deleteMarker.Owner.Id, deleteMarker.Owner.DisplayName) : null
                    };

                    result.AddDeleteMarkerSummary(summary);
                }
            }

            if (model.CommonPrefixes != null)
            {
                foreach(var prefixes in model.CommonPrefixes)
                {
                    if (prefixes.Prefix != null)
                    {
                        result.AddCommonPrefix(Decode(prefixes.Prefix, encodeType));
                    }
                }
            }

            DeserializeGeneric(xmlStream, result);

            return result;
        }