Skip to content

Commit ce93aa7

Browse files
committed
fix: aligns reference copy constructors
Signed-off-by: Vincent Biret <[email protected]>
1 parent 9bc3044 commit ce93aa7

5 files changed

+27
-11
lines changed

src/Microsoft.OpenApi/Models/References/OpenApiCallbackReference.cs

+9-3
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,14 @@ public class OpenApiCallbackReference : BaseOpenApiReferenceHolder<OpenApiCallba
2727
/// </param>
2828
public OpenApiCallbackReference(string referenceId, OpenApiDocument hostDocument, string externalResource = null):base(referenceId, hostDocument, ReferenceType.Callback, externalResource)
2929
{
30+
}
31+
/// <summary>
32+
/// Copy constructor
33+
/// </summary>
34+
/// <param name="callback">The reference to copy</param>
35+
private OpenApiCallbackReference(OpenApiCallbackReference callback):base(callback)
36+
{
37+
3038
}
3139

3240
internal OpenApiCallbackReference(OpenApiCallback target, string referenceId):base(target, referenceId, ReferenceType.Callback)
@@ -55,9 +63,7 @@ public override void SerializeAsV2(IOpenApiWriter writer)
5563
/// <inheritdoc/>
5664
public IOpenApiCallback CreateShallowCopy()
5765
{
58-
return _target is null ?
59-
new OpenApiCallbackReference(Reference.Id, Reference.HostDocument, Reference.ExternalResource) :
60-
new OpenApiCallbackReference(_target, Reference.Id);
66+
return new OpenApiCallbackReference(this);
6167
}
6268
}
6369
}

src/Microsoft.OpenApi/Models/References/OpenApiExampleReference.cs

+8-3
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,13 @@ public class OpenApiExampleReference : BaseOpenApiReferenceHolder<OpenApiExample
2828
public OpenApiExampleReference(string referenceId, OpenApiDocument hostDocument, string externalResource = null):base(referenceId, hostDocument, ReferenceType.Example, externalResource)
2929
{
3030
}
31+
/// <summary>
32+
/// Copy constructor
33+
/// </summary>
34+
/// <param name="example">The example reference to copy</param>
35+
private OpenApiExampleReference(OpenApiExampleReference example):base(example)
36+
{
37+
}
3138

3239
internal OpenApiExampleReference(OpenApiExample target, string referenceId):base(target, referenceId, ReferenceType.Example)
3340
{
@@ -84,9 +91,7 @@ public override void SerializeAsV2(IOpenApiWriter writer)
8491
/// <inheritdoc/>
8592
public IOpenApiExample CreateShallowCopy()
8693
{
87-
return _target is null ?
88-
new OpenApiExampleReference(Reference.Id, Reference.HostDocument, Reference.ExternalResource) :
89-
new OpenApiExampleReference(_target, Reference.Id);
94+
return new OpenApiExampleReference(this);
9095
}
9196
}
9297
}

src/Microsoft.OpenApi/Models/References/OpenApiLinkReference.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public OpenApiLinkReference(string referenceId, OpenApiDocument hostDocument, st
3131
/// Copy constructor.
3232
/// </summary>
3333
/// <param name="reference">The reference to copy</param>
34-
public OpenApiLinkReference(OpenApiLinkReference reference):base(reference)
34+
private OpenApiLinkReference(OpenApiLinkReference reference):base(reference)
3535
{
3636
}
3737
internal OpenApiLinkReference(OpenApiLink target, string referenceId):base(target, referenceId, ReferenceType.Link)

src/Microsoft.OpenApi/Models/References/OpenApiParameterReference.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public OpenApiParameterReference(string referenceId, OpenApiDocument hostDocumen
3131
/// Copy constructor
3232
/// </summary>
3333
/// <param name="parameter">The parameter reference to copy</param>
34-
public OpenApiParameterReference(OpenApiParameterReference parameter):base(parameter)
34+
private OpenApiParameterReference(OpenApiParameterReference parameter):base(parameter)
3535
{
3636
}
3737

src/Microsoft.OpenApi/Models/References/OpenApiSchemaReference.cs

+8-3
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,13 @@ public class OpenApiSchemaReference : BaseOpenApiReferenceHolder<OpenApiSchema,
2828
public OpenApiSchemaReference(string referenceId, OpenApiDocument hostDocument, string externalResource = null):base(referenceId, hostDocument, ReferenceType.Schema, externalResource)
2929
{
3030
}
31+
/// <summary>
32+
/// Copy constructor
33+
/// </summary>
34+
/// <param name="schema">The schema reference to copy</param>
35+
private OpenApiSchemaReference(OpenApiSchemaReference schema):base(schema)
36+
{
37+
}
3138

3239
internal OpenApiSchemaReference(OpenApiSchema target, string referenceId):base(target, referenceId, ReferenceType.Schema)
3340
{
@@ -196,9 +203,7 @@ public override IOpenApiSchema CopyReferenceAsTargetElementWithOverrides(IOpenAp
196203
/// <inheritdoc/>
197204
public IOpenApiSchema CreateShallowCopy()
198205
{
199-
return _target is null ?
200-
new OpenApiSchemaReference(Reference.Id, Reference.HostDocument, Reference.ExternalResource) :
201-
new OpenApiSchemaReference(_target, Reference.Id);
206+
return new OpenApiSchemaReference(this);
202207
}
203208
}
204209
}

0 commit comments

Comments
 (0)