@@ -5,17 +5,17 @@ namespace Microsoft.OpenApi;
5
5
/// Base class for OpenApiReferenceHolder.
6
6
/// </summary>
7
7
/// <typeparam name="T">The concrete class implementation type for the model.</typeparam>
8
- /// <typeparam name="V ">The interface type for the model.</typeparam>
9
- /// <typeparam name="U ">The type for the reference holding the additional fields and annotations</typeparam>
10
- public abstract class BaseOpenApiReferenceHolder < T , V , U > : IOpenApiReferenceHolder < T , V , U > where T : class , IOpenApiReferenceable , V where V : IOpenApiReferenceable , IOpenApiSerializable where U : OpenApiReference , new ( )
8
+ /// <typeparam name="U ">The interface type for the model.</typeparam>
9
+ /// <typeparam name="V ">The type for the reference holding the additional fields and annotations</typeparam>
10
+ public abstract class BaseOpenApiReferenceHolder < T , U , V > : IOpenApiReferenceHolder < T , U , V > where T : class , IOpenApiReferenceable , U where U : IOpenApiReferenceable , IOpenApiSerializable where V : OpenApiReference , new ( )
11
11
{
12
12
/// <inheritdoc/>
13
- public virtual V ? Target
13
+ public virtual U ? Target
14
14
{
15
15
get
16
16
{
17
17
if ( Reference . HostDocument is null ) return default ;
18
- return Reference . HostDocument . ResolveReferenceTo < V > ( Reference ) ;
18
+ return Reference . HostDocument . ResolveReferenceTo < U > ( Reference ) ;
19
19
}
20
20
}
21
21
/// <inheritdoc/>
@@ -24,7 +24,7 @@ public T? RecursiveTarget
24
24
get
25
25
{
26
26
return Target switch {
27
- BaseOpenApiReferenceHolder < T , V , U > recursiveTarget => recursiveTarget . RecursiveTarget ,
27
+ BaseOpenApiReferenceHolder < T , U , V > recursiveTarget => recursiveTarget . RecursiveTarget ,
28
28
T concrete => concrete ,
29
29
_ => null
30
30
} ;
@@ -35,7 +35,7 @@ public T? RecursiveTarget
35
35
/// Copy constructor
36
36
/// </summary>
37
37
/// <param name="source">The parameter reference to copy</param>
38
- protected BaseOpenApiReferenceHolder ( BaseOpenApiReferenceHolder < T , V , U > source )
38
+ protected BaseOpenApiReferenceHolder ( BaseOpenApiReferenceHolder < T , U , V > source )
39
39
{
40
40
Utils . CheckArgumentNull ( source ) ;
41
41
Reference = new ( source . Reference ) ;
@@ -59,7 +59,7 @@ protected BaseOpenApiReferenceHolder(string referenceId, OpenApiDocument? hostDo
59
59
// we're not checking for null hostDocument as it's optional and can be set via additional methods by a walker
60
60
// this way object initialization of a whole document is supported
61
61
62
- Reference = new U ( )
62
+ Reference = new V ( )
63
63
{
64
64
Id = referenceId ,
65
65
HostDocument = hostDocument ,
@@ -75,10 +75,10 @@ protected BaseOpenApiReferenceHolder(string referenceId, OpenApiDocument? hostDo
75
75
public required U Reference { get ; init ; }
76
76
#else
77
77
/// <inheritdoc/>
78
- public U Reference { get ; init ; }
78
+ public V Reference { get ; init ; }
79
79
#endif
80
80
/// <inheritdoc/>
81
- public abstract V CopyReferenceAsTargetElementWithOverrides ( V source ) ;
81
+ public abstract U CopyReferenceAsTargetElementWithOverrides ( U source ) ;
82
82
/// <inheritdoc/>
83
83
public virtual void SerializeAsV3 ( IOpenApiWriter writer )
84
84
{
@@ -126,7 +126,7 @@ public virtual void SerializeAsV2(IOpenApiWriter writer)
126
126
/// <param name="writer">The OpenApiWriter.</param>
127
127
/// <param name="action">The action to serialize the target object.</param>
128
128
private protected void SerializeInternal ( IOpenApiWriter writer ,
129
- Action < IOpenApiWriter , V > action )
129
+ Action < IOpenApiWriter , U > action )
130
130
{
131
131
Utils . CheckArgumentNull ( writer ) ;
132
132
if ( Target is not null )
0 commit comments