Skip to content

Commit 08acaaa

Browse files
committed
Clean up dictionary cloning logic
1 parent 264611d commit 08acaaa

18 files changed

+35
-23
lines changed

src/Microsoft.OpenApi/Models/OpenApiComponents.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) Microsoft Corporation. All rights reserved.
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
22
// Licensed under the MIT license.
33

44
using System.Collections.Generic;
@@ -86,7 +86,7 @@ public OpenApiComponents(OpenApiComponents components)
8686
SecuritySchemes = components?.SecuritySchemes != null ? DictionaryCloneHelper.Clone(components.SecuritySchemes) : null;
8787
Links = components?.Links != null ? DictionaryCloneHelper.Clone(components.Links) : null;
8888
Callbacks = components?.Callbacks != null ? DictionaryCloneHelper.Clone(components.Callbacks) : null;
89-
Extensions = components?.Extensions != null ? new Dictionary<string, IOpenApiExtension>(components.Extensions) : null;
89+
Extensions = components?.Extensions != null ? DictionaryCloneHelper.Clone(components.Extensions) : null;
9090
}
9191

9292
/// <summary>

src/Microsoft.OpenApi/Models/OpenApiContact.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System;
55
using System.Collections.Generic;
66
using Microsoft.OpenApi.Any;
7+
using Microsoft.OpenApi.Helpers;
78
using Microsoft.OpenApi.Interfaces;
89
using Microsoft.OpenApi.Writers;
910

@@ -48,7 +49,7 @@ public OpenApiContact(OpenApiContact contact)
4849
Name = contact?.Name ?? Name;
4950
Url = contact?.Url != null ? new Uri(contact.Url.OriginalString, UriKind.RelativeOrAbsolute) : null;
5051
Email = contact?.Email ?? Email;
51-
Extensions = contact?.Extensions != null ? new Dictionary<string, IOpenApiExtension>(contact.Extensions) : null;
52+
Extensions = contact?.Extensions != null ? DictionaryCloneHelper.Clone(contact.Extensions) : null;
5253
}
5354

5455
/// <summary>

src/Microsoft.OpenApi/Models/OpenApiExtensibleDictionary.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// Licensed under the MIT license.
33

44
using System.Collections.Generic;
5+
using Microsoft.OpenApi.Helpers;
56
using Microsoft.OpenApi.Interfaces;
67
using Microsoft.OpenApi.Writers;
78

@@ -30,7 +31,7 @@ protected OpenApiExtensibleDictionary(
3031
Dictionary<string, T> dictionary = null,
3132
IDictionary<string, IOpenApiExtension> extensions = null) : base (dictionary)
3233
{
33-
Extensions = extensions != null ? new Dictionary<string, IOpenApiExtension>(extensions) : null;
34+
Extensions = extensions != null ? DictionaryCloneHelper.Clone(extensions) : null;
3435
}
3536

3637
/// <summary>

src/Microsoft.OpenApi/Models/OpenApiExternalDocs.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System;
55
using System.Collections.Generic;
66
using Microsoft.OpenApi.Any;
7+
using Microsoft.OpenApi.Helpers;
78
using Microsoft.OpenApi.Interfaces;
89
using Microsoft.OpenApi.Writers;
910

@@ -41,7 +42,7 @@ public OpenApiExternalDocs(OpenApiExternalDocs externalDocs)
4142
{
4243
Description = externalDocs?.Description ?? Description;
4344
Url = externalDocs?.Url != null ? new Uri(externalDocs.Url.OriginalString, UriKind.RelativeOrAbsolute) : null;
44-
Extensions = externalDocs?.Extensions != null ? new Dictionary<string, IOpenApiExtension>(externalDocs.Extensions) : null;
45+
Extensions = externalDocs?.Extensions != null ? DictionaryCloneHelper.Clone(externalDocs.Extensions) : null;
4546
}
4647

4748
/// <summary>

src/Microsoft.OpenApi/Models/OpenApiInfo.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System;
55
using System.Collections.Generic;
66
using Microsoft.OpenApi.Any;
7+
using Microsoft.OpenApi.Helpers;
78
using Microsoft.OpenApi.Interfaces;
89
using Microsoft.OpenApi.Writers;
910

@@ -65,7 +66,7 @@ public OpenApiInfo(OpenApiInfo info)
6566
TermsOfService = info?.TermsOfService ?? TermsOfService;
6667
Contact = info?.Contact != null ? new(info?.Contact) : null;
6768
License = info?.License != null ? new(info?.License) : null;
68-
Extensions = info?.Extensions != null ? new Dictionary<string, IOpenApiExtension>(info.Extensions) : null;
69+
Extensions = info?.Extensions != null ? DictionaryCloneHelper.Clone(info.Extensions) : null;
6970
}
7071

7172
/// <summary>

src/Microsoft.OpenApi/Models/OpenApiLicense.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System;
55
using System.Collections.Generic;
66
using Microsoft.OpenApi.Any;
7+
using Microsoft.OpenApi.Helpers;
78
using Microsoft.OpenApi.Interfaces;
89
using Microsoft.OpenApi.Writers;
910

@@ -41,7 +42,7 @@ public OpenApiLicense(OpenApiLicense license)
4142
{
4243
Name = license?.Name ?? Name;
4344
Url = license?.Url != null ? new Uri(license.Url.OriginalString, UriKind.RelativeOrAbsolute) : null;
44-
Extensions = license?.Extensions != null ? new Dictionary<string, IOpenApiExtension>(license.Extensions) : null;
45+
Extensions = license?.Extensions != null ? DictionaryCloneHelper.Clone(license.Extensions) : null;
4546
}
4647

4748
/// <summary>

src/Microsoft.OpenApi/Models/OpenApiLink.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
using System.Collections.Generic;
55
using Microsoft.OpenApi.Any;
6+
using Microsoft.OpenApi.Helpers;
67
using Microsoft.OpenApi.Interfaces;
78
using Microsoft.OpenApi.Writers;
89

@@ -77,7 +78,7 @@ public OpenApiLink(OpenApiLink link)
7778
RequestBody = link?.RequestBody != null ? new(link?.RequestBody) : null;
7879
Description = link?.Description ?? Description;
7980
Server = link?.Server != null ? new(link?.Server) : null;
80-
Extensions = link?.Extensions != null ? new Dictionary<string, IOpenApiExtension>(link.Extensions) : null;
81+
Extensions = link?.Extensions != null ? DictionaryCloneHelper.Clone(link.Extensions) : null;
8182
UnresolvedReference = link?.UnresolvedReference ?? UnresolvedReference;
8283
Reference = link?.Reference != null ? new(link?.Reference) : null;
8384
}

src/Microsoft.OpenApi/Models/OpenApiOAuthFlow.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System;
55
using System.Collections.Generic;
66
using Microsoft.OpenApi.Any;
7+
using Microsoft.OpenApi.Helpers;
78
using Microsoft.OpenApi.Interfaces;
89
using Microsoft.OpenApi.Writers;
910

@@ -54,8 +55,8 @@ public OpenApiOAuthFlow(OpenApiOAuthFlow oAuthFlow)
5455
AuthorizationUrl = oAuthFlow?.AuthorizationUrl != null ? new Uri(oAuthFlow.AuthorizationUrl.OriginalString, UriKind.RelativeOrAbsolute) : null;
5556
TokenUrl = oAuthFlow?.TokenUrl != null ? new Uri(oAuthFlow.TokenUrl.OriginalString, UriKind.RelativeOrAbsolute) : null;
5657
RefreshUrl = oAuthFlow?.RefreshUrl != null ? new Uri(oAuthFlow.RefreshUrl.OriginalString, UriKind.RelativeOrAbsolute) : null;
57-
Scopes = oAuthFlow?.Scopes != null ? new Dictionary<string, string>(oAuthFlow.Scopes) : null;
58-
Extensions = oAuthFlow?.Extensions != null ? new Dictionary<string, IOpenApiExtension>(oAuthFlow.Extensions) : null;
58+
Scopes = oAuthFlow?.Scopes != null ? DictionaryCloneHelper.Clone(oAuthFlow.Scopes) : null;
59+
Extensions = oAuthFlow?.Extensions != null ? DictionaryCloneHelper.Clone(oAuthFlow.Extensions) : null;
5960
}
6061

6162
/// <summary>

src/Microsoft.OpenApi/Models/OpenApiOAuthFlows.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
using System.Collections.Generic;
55
using Microsoft.OpenApi.Any;
6+
using Microsoft.OpenApi.Helpers;
67
using Microsoft.OpenApi.Interfaces;
78
using Microsoft.OpenApi.Writers;
89

@@ -53,7 +54,7 @@ public OpenApiOAuthFlows(OpenApiOAuthFlows oAuthFlows)
5354
Password = oAuthFlows?.Password != null ? new(oAuthFlows?.Password) : null;
5455
ClientCredentials = oAuthFlows?.ClientCredentials != null ? new(oAuthFlows?.ClientCredentials) : null;
5556
AuthorizationCode = oAuthFlows?.AuthorizationCode != null ? new(oAuthFlows?.AuthorizationCode) : null;
56-
Extensions = oAuthFlows?.Extensions != null ? new Dictionary<string, IOpenApiExtension>(oAuthFlows.Extensions) : null;
57+
Extensions = oAuthFlows?.Extensions != null ? DictionaryCloneHelper.Clone(oAuthFlows.Extensions) : null;
5758
}
5859

5960
/// <summary>

src/Microsoft.OpenApi/Models/OpenApiOperation.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ public OpenApiOperation(OpenApiOperation operation)
129129
Deprecated = operation?.Deprecated ?? Deprecated;
130130
Security = operation?.Security != null ? new List<OpenApiSecurityRequirement>(operation.Security) : null;
131131
Servers = operation?.Servers != null ? new List<OpenApiServer>(operation.Servers) : null;
132-
Extensions = operation?.Extensions != null ? new Dictionary<string, IOpenApiExtension>(operation.Extensions) : null;
132+
Extensions = operation?.Extensions != null ? DictionaryCloneHelper.Clone(operation.Extensions) : null;
133133
}
134134

135135
/// <summary>

0 commit comments

Comments
 (0)