sdk/Transform/SerializerFactory.cs (117 lines of code) (raw):

/* * Copyright (C) Alibaba Cloud Computing * All rights reserved. * */ using System.IO; using Aliyun.OSS.Model; namespace Aliyun.OSS.Transform { internal abstract class SerializerFactory { public static SerializerFactory GetFactory(string contentType = null) { if (contentType == null || contentType.Contains("xml")) { return new XmlSerializerFactory(); } // Ignore other content types, current only supports XML serializer factory. return null; } protected abstract ISerializer<T, Stream> CreateContentSerializer<T>(); public ISerializer<CompleteMultipartUploadRequest, Stream> CreateCompleteUploadRequestSerializer() { return new CompleteMultipartUploadRequestSerializer(CreateContentSerializer<CompleteMultipartUploadRequestModel>()); } public ISerializer<SetBucketLoggingRequest, Stream> CreateSetBucketLoggingRequestSerializer() { return new SetBucketLoggingRequestSerializer(CreateContentSerializer<SetBucketLoggingRequestModel>()); } public ISerializer<SetBucketWebsiteRequest, Stream> CreateSetBucketWebsiteRequestSerializer() { return new SetBucketWebsiteRequestSerializer(CreateContentSerializer<SetBucketWebsiteRequestModel>()); } public ISerializer<SetBucketStorageCapacityRequest, Stream> CreateSetBucketStorageCapacityRequestSerializer() { return new SetBucketStorageCapacityRequestSerializer(CreateContentSerializer<BucketStorageCapacityModel>()); } public ISerializer<SetBucketCorsRequest, Stream> CreateSetBucketCorsRequestSerializer() { return new SetBucketCorsRequestSerializer(CreateContentSerializer<SetBucketCorsRequestModel>()); } public ISerializer<DeleteObjectsRequest, Stream> CreateDeleteObjectsRequestSerializer() { return new DeleteObjectsRequestSerializer(CreateContentSerializer<DeleteObjectsRequestModel>()); } public ISerializer<SetBucketRefererRequest, Stream> CreateSetBucketRefererRequestSerializer() { return new SetBucketRefererRequestSerializer(CreateContentSerializer<RefererConfiguration>()); } public ISerializer<SetBucketLifecycleRequest, Stream> CreateSetBucketLifecycleRequestSerializer() { return new SetBucketLifecycleRequestSerializer(CreateContentSerializer<LifecycleConfiguration>()); } public ISerializer<CreateBucketRequest, Stream> CreateCreateBucketSerialization() { return new CreateBucketRequestSerializer(CreateContentSerializer<CreateBucketRequestModel>()); } public ISerializer<SetBucketTaggingRequest, Stream> CreateSetBucketTaggingRequestSerializer() { return new SetBucketTaggingRequestSerializer(CreateContentSerializer<Tagging>()); } public ISerializer<SetObjectTaggingRequest, Stream> CreateSetObjectTaggingRequestSerializer() { return new SetObjectTaggingRequestSerializer(CreateContentSerializer<Tagging>()); } public ISerializer<SetBucketRequestPaymentRequest, Stream> CreateSetBucketRequestPaymentRequestSerializer() { return new SetBucketRequestPaymentRequestSerializer(CreateContentSerializer<RequestPaymentConfiguration>()); } public ISerializer<SetBucketEncryptionRequest, Stream> CreateSetBucketEncryptionRequestSerializer() { return new SetBucketEncryptionRequestSerializer(CreateContentSerializer<ServerSideEncryptionRule>()); } public ISerializer<SetBucketVersioningRequest, Stream> CreateSetBucketVersioningRequestSerializer() { return new SetBucketVersioningRequestSerializer(CreateContentSerializer<VersioningConfiguration>()); } public ISerializer<DeleteObjectVersionsRequest, Stream> CreateDeleteObjectVersionsRequestSerializer() { return new DeleteObjectVersionsRequestSerializer(CreateContentSerializer<DeleteObjectVersionsRequestModel>()); } public ISerializer<CreateLiveChannelRequest, Stream> CreateCreateLiveChannelRequestSerializer() { return new CreateLiveChannelRequestSerializer(CreateContentSerializer<LiveChannelConfiguration>()); } public ISerializer<RestoreObjectRequest, Stream> CreateRestoreObjectRequestSerializer() { return new RestoreObjectRequestSerializer(CreateContentSerializer<RestoreRequestModel>()); } public ISerializer<SetBucketInventoryConfigurationRequest, Stream> CreateSetBucketInventoryConfigurationRequestSerializer() { return new SetBucketInventoryConfigurationRequestSerializer(CreateContentSerializer<InventoryConfigurationModel>()); } public ISerializer<InitiateBucketWormRequest, Stream> CreateInitiateBucketWormSerializer() { return new InitiateBucketWormRequestSerializer(CreateContentSerializer<InitiateBucketWormModel>()); } public ISerializer<ExtendBucketWormRequest, Stream> CreateExtendBucketWormSerializer() { return new ExtendBucketWormRequestSerializer(CreateContentSerializer<ExtendBucketWormModel>()); } public ISerializer<SelectObjectRequest, Stream> CreateSelectObjectRequestSerializer() { return new SelectObjectRequestSerializer(CreateContentSerializer<SelectObjectRequestModel>()); } public ISerializer<CreateSelectObjectMetaRequest, Stream> CreateSelectObjectCsvMetaRequestSerializer() { return new SelectObjectCsvMetaRequestSerializer(CreateContentSerializer<CsvMetaRequestModel>()); } public ISerializer<CreateSelectObjectMetaRequest, Stream> CreateSelectObjectJsonMetaRequestSerializer() { return new SelectObjectJsonMetaRequestSerializer(CreateContentSerializer<JsonMetaRequestModel>()); } } internal class XmlSerializerFactory : SerializerFactory { protected override ISerializer<T, Stream> CreateContentSerializer<T>() { return new XmlStreamSerializer<T>(); } } }