sdk/Transform/DeserializerFactory.cs (241 lines of code) (raw):

/* * Copyright (C) Alibaba Cloud Computing * All rights reserved. * */ using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.IO; using Aliyun.OSS.Common.Communication; using Aliyun.OSS.Model; namespace Aliyun.OSS.Transform { internal abstract class DeserializerFactory { public static DeserializerFactory GetFactory() { return GetFactory(null); } public static DeserializerFactory GetFactory(string contentType) { // Use XML for default. if (contentType == null) contentType = "text/xml"; if (contentType.Contains("xml")) return new XmlDeserializerFactory(); return null; } protected abstract IDeserializer<Stream, T> CreateContentDeserializer<T>(); public IDeserializer<ServiceResponse, ErrorResult> CreateErrorResultDeserializer() { return new SimpleResponseDeserializer<ErrorResult>(CreateContentDeserializer<ErrorResult>()); } public IDeserializer<ServiceResponse, ListBucketsResult> CreateListBucketResultDeserializer() { return new ListBucketsResultDeserializer(CreateContentDeserializer<ListAllMyBucketsResult>()); } public IDeserializer<ServiceResponse, BucketInfo> CreateGetBucketInfoDeserializer() { return new GetBucketInfoDeserializer(CreateContentDeserializer<BucketInfo>()); } public IDeserializer<ServiceResponse, BucketStat> CreateGetBucketStatDeserializer() { return new GetBucketStatDeserializer(CreateContentDeserializer<BucketStat>()); } public IDeserializer<ServiceResponse, AccessControlList> CreateGetAclResultDeserializer() { return new GetAclResponseDeserializer(CreateContentDeserializer<AccessControlPolicy>()); } public IDeserializer<ServiceResponse, BucketLocationResult> CreateGetBucketLocationResultDeserializer() { return new GetBucketLocationResultDeserializer(CreateContentDeserializer<BucketLocationResult>()); } [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")] public IDeserializer<ServiceResponse, BucketMetadata> CreateGetBucketMetadataResultDeserializer() { return new GetBucketMetadataResponseDeserializer(); } public IDeserializer<ServiceResponse, IList<CORSRule>> CreateGetCorsResultDeserializer() { return new GetCorsResponseDeserializer(CreateContentDeserializer<SetBucketCorsRequestModel>()); } public IDeserializer<ServiceResponse, BucketLoggingResult> CreateGetBucketLoggingResultDeserializer() { return new GetBucketLoggingResultDeserializer(CreateContentDeserializer<SetBucketLoggingRequestModel>()); } public IDeserializer<ServiceResponse, BucketWebsiteResult> CreateGetBucketWebSiteResultDeserializer() { return new GetBucketWebSiteResultDeserializer(CreateContentDeserializer<SetBucketWebsiteRequestModel>()); } public IDeserializer<ServiceResponse, GetBucketStorageCapacityResult> CreateGetBucketStorageCapacityResultDeserializer() { return new GetBucketStorageCapacityResultDeserializer(CreateContentDeserializer<BucketStorageCapacityModel>()); } public IDeserializer<ServiceResponse, GetBucketPolicyResult> CreateGetBucketPolicyDeserializer() { return new GetBucketPolicyDeserializer(CreateContentDeserializer<GetBucketPolicyResult>()); } [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")] public IDeserializer<ServiceResponse, PutObjectResult> CreatePutObjectReusltDeserializer(PutObjectRequest request) { return new PutObjectResponseDeserializer(request); } [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")] public IDeserializer<ServiceResponse, AppendObjectResult> CreateAppendObjectResultDeserializer() { return new AppendObjectResponseDeserializer(); } [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")] public IDeserializer<ServiceResponse, OssObject> CreateGetObjectResultDeserializer(GetObjectRequest request, IServiceClient client) { return new GetObjectResponseDeserializer(request, client); } [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")] public IDeserializer<ServiceResponse, ObjectMetadata> CreateGetObjectMetadataResultDeserializer() { return new GetObjectMetadataResponseDeserializer(); } public IDeserializer<ServiceResponse, ObjectListing> CreateListObjectsResultDeserializer() { return new ListObjectsResponseDeserializer(CreateContentDeserializer<ListBucketResult>()); } public IDeserializer<ServiceResponse, ObjectVersionList> CreateListObjectVersionsResultDeserializer() { return new ListObjectVersionsResponseDeserializer(CreateContentDeserializer<ListVersionsResult>()); } public IDeserializer<ServiceResponse, MultipartUploadListing> CreateListMultipartUploadsResultDeserializer() { return new ListMultipartUploadsResponseDeserializer(CreateContentDeserializer<ListMultipartUploadsResult>()); } public IDeserializer<ServiceResponse, InitiateMultipartUploadResult> CreateInitiateMultipartUploadResultDeserializer() { return new InitiateMultipartUploadResultDeserializer(CreateContentDeserializer<InitiateMultipartResult>()); } public IDeserializer<ServiceResponse, UploadPartResult> CreateUploadPartResultDeserializer(int partNumber) { return new UploadPartResultDeserializer(partNumber); } public IDeserializer<ServiceResponse, UploadPartResult> CreateUploadPartResultDeserializer(int partNumber, long length) { return new UploadPartResultDeserializer(partNumber, length); } public IDeserializer<ServiceResponse, UploadPartCopyResult> CreateUploadPartCopyResultDeserializer(int partNumber) { return new UploadPartCopyResultDeserializer(CreateContentDeserializer<UploadPartCopyRequestModel>(), partNumber); } public IDeserializer<ServiceResponse, PartListing> CreateListPartsResultDeserializer() { return new ListPartsResponseDeserializer(CreateContentDeserializer<ListPartsResult>()); } public IDeserializer<ServiceResponse, CompleteMultipartUploadResult> CreateCompleteUploadResultDeserializer(CompleteMultipartUploadRequest request) { return new CompleteMultipartUploadResultDeserializer(CreateContentDeserializer<CompleteMultipartUploadResultModel>(), request); } public IDeserializer<ServiceResponse, CopyObjectResult> CreateCopyObjectResultDeserializer() { return new CopyObjectResultDeserializer(CreateContentDeserializer<CopyObjectResultModel>()); } public IDeserializer<ServiceResponse, DeleteObjectsResult> CreateDeleteObjectsResultDeserializer() { return new DeleteObjectsResultDeserializer(CreateContentDeserializer<DeleteObjectsResult>()); } public IDeserializer<ServiceResponse, RefererConfiguration> CreateGetBucketRefererResultDeserializer() { return new SimpleResponseDeserializer<RefererConfiguration>(CreateContentDeserializer<RefererConfiguration>()); } public IDeserializer<ServiceResponse, IList<LifecycleRule>> CreateGetBucketLifecycleDeserializer() { return new GetBucketLifecycleDeserializer(CreateContentDeserializer<LifecycleConfiguration>()); } public IDeserializer<ServiceResponse, RestoreObjectResult> CreateRestoreObjectResultDeserializer() { return new RestoreObjectResultDeserializer(CreateContentDeserializer<ErrorResult>()); } public IDeserializer<ServiceResponse, GetBucketTaggingResult> CreateGetBucketTaggingResultDeserializer() { return new GetBucketTaggingResultDeserializer(CreateContentDeserializer<Tagging>()); } public IDeserializer<ServiceResponse, GetObjectTaggingResult> CreateGetObjectTaggingResultDeserializer() { return new GetObjectTaggingResultDeserializer(CreateContentDeserializer<Tagging>()); } public IDeserializer<ServiceResponse, GetBucketRequestPaymentResult> CreateGetBucketRequestPaymentResultDeserializer() { return new GetBucketRequestPaymentResultDeserializer(CreateContentDeserializer<RequestPaymentConfiguration>()); } public IDeserializer<ServiceResponse, BucketEncryptionResult> CreateGetBucketEncryptionResultDeserializer() { return new GetBucketEncryptionResultDeserializer(CreateContentDeserializer<ServerSideEncryptionRule>()); } public IDeserializer<ServiceResponse, GetBucketVersioningResult> CreateGetBucketVersioningResultDeserializer() { return new GetBucketVersioningResultDeserializer(CreateContentDeserializer<VersioningConfiguration>()); } public IDeserializer<ServiceResponse, DeleteObjectVersionsResult> CreateDeleteObjectVersionsResultDeserializer() { return new DeleteObjectVersionsResultDeserializer(CreateContentDeserializer<DeleteObjectVersionsResultModel>()); } public IDeserializer<ServiceResponse, CreateSymlinkResult> CreateCreateSymlinkResultDeserializer() { return new CreateSymlinkResultDeserializer(CreateContentDeserializer<Stream>()); } public IDeserializer<ServiceResponse, DeleteObjectResult> CreateDeleteObjectResultDeserializer() { return new DeleteObjectResultDeserializer(CreateContentDeserializer<Stream>()); } public IDeserializer<ServiceResponse, CreateLiveChannelResult> CreateCreateLiveChannelResultDeserializer() { return new CreateLiveChannelResultDeserializer(CreateContentDeserializer<CreateLiveChannelResultModel>()); } public IDeserializer<ServiceResponse, GetLiveChannelInfoResult> CreateGetLiveChannelInfoResultDeserializer() { return new GetLiveChannelInfoResultDeserializer(CreateContentDeserializer<LiveChannelConfiguration>()); } public IDeserializer<ServiceResponse, GetLiveChannelStatResult> CreateGetLiveChannelStatResultDeserializer() { return new GetLiveChannelStatResultDeserializer(CreateContentDeserializer<LiveChannelStat>()); } public IDeserializer<ServiceResponse, GetLiveChannelHistoryResult> CreateGetLiveChannelHistoryResultDeserializer() { return new GetLiveChannelHistoryResultDeserializer(CreateContentDeserializer<LiveChannelHistory>()); } public IDeserializer<ServiceResponse, ListLiveChannelResult> CreateListLiveChannelResultDeserializer() { return new ListLiveChannelResultDeserializer(CreateContentDeserializer<ListLiveChannelResultModel>()); } public IDeserializer<ServiceResponse, GetVodPlaylistResult> CreateGetVodPlaylistResultDeserializer() { return new GetVodPlaylistResultDeserializer(CreateContentDeserializer<GetVodPlaylistResult>()); } public IDeserializer<ServiceResponse, GetBucketInventoryConfigurationResult> CreateGetBucketInventoryConfigurationResultDeserializer() { return new GetBucketInventoryConfigurationResultDeserializer(CreateContentDeserializer<InventoryConfigurationModel>()); } public IDeserializer<ServiceResponse, ListBucketInventoryConfigurationResult> CreateListBucketInventoryConfigurationResultDeserializer() { return new ListBucketInventoryConfigurationResultDeserializer(CreateContentDeserializer<ListInventoryConfigurationModel>()); } public IDeserializer<ServiceResponse, InitiateBucketWormResult> CreateInitiateBucketWormResultDeserializer() { return new InitiateBucketWormResultDeserializer(CreateContentDeserializer<Stream>()); } public IDeserializer<ServiceResponse, GetBucketWormResult> CreateGetBucketWormResultDeserializer() { return new GetBucketWormResultDeserializer(CreateContentDeserializer<WormConfigurationModel>()); } public IDeserializer<ServiceResponse, OssObject> CreateSelectObjectRequestDeserializer(SelectObjectRequest request) { return new SelectObjectRequestDeserializer(request); } public IDeserializer<ServiceResponse, CreateSelectObjectMetaResult> CreateSelectObjectMetaRequestDeserializer() { return new SelectObjectMetaRequestDeserializer(); } public IDeserializer<ServiceResponse, ProcessObjectResult> CreateProcessObjectResultDeserializer() { return new ProcessObjectResultDeserializer(CreateContentDeserializer<Stream>()); } } internal class XmlDeserializerFactory : DeserializerFactory { protected override IDeserializer<Stream, T> CreateContentDeserializer<T>() { return new XmlStreamDeserializer<T>(); } } }