@@ -5,17 +5,17 @@ namespace Microsoft.OpenApi;
55/// Base class for OpenApiReferenceHolder.
66/// </summary>
77/// <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 ( )
1111{
1212 /// <inheritdoc/>
13- public virtual V ? Target
13+ public virtual U ? Target
1414 {
1515 get
1616 {
1717 if ( Reference . HostDocument is null ) return default ;
18- return Reference . HostDocument . ResolveReferenceTo < V > ( Reference ) ;
18+ return Reference . HostDocument . ResolveReferenceTo < U > ( Reference ) ;
1919 }
2020 }
2121 /// <inheritdoc/>
@@ -24,7 +24,7 @@ public T? RecursiveTarget
2424 get
2525 {
2626 return Target switch {
27- BaseOpenApiReferenceHolder < T , V , U > recursiveTarget => recursiveTarget . RecursiveTarget ,
27+ BaseOpenApiReferenceHolder < T , U , V > recursiveTarget => recursiveTarget . RecursiveTarget ,
2828 T concrete => concrete ,
2929 _ => null
3030 } ;
@@ -35,7 +35,7 @@ public T? RecursiveTarget
3535 /// Copy constructor
3636 /// </summary>
3737 /// <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 )
3939 {
4040 Utils . CheckArgumentNull ( source ) ;
4141 Reference = new ( source . Reference ) ;
@@ -59,7 +59,7 @@ protected BaseOpenApiReferenceHolder(string referenceId, OpenApiDocument? hostDo
5959 // we're not checking for null hostDocument as it's optional and can be set via additional methods by a walker
6060 // this way object initialization of a whole document is supported
6161
62- Reference = new U ( )
62+ Reference = new V ( )
6363 {
6464 Id = referenceId ,
6565 HostDocument = hostDocument ,
@@ -75,10 +75,10 @@ protected BaseOpenApiReferenceHolder(string referenceId, OpenApiDocument? hostDo
7575 public required U Reference { get ; init ; }
7676#else
7777 /// <inheritdoc/>
78- public U Reference { get ; init ; }
78+ public V Reference { get ; init ; }
7979#endif
8080 /// <inheritdoc/>
81- public abstract V CopyReferenceAsTargetElementWithOverrides ( V source ) ;
81+ public abstract U CopyReferenceAsTargetElementWithOverrides ( U source ) ;
8282 /// <inheritdoc/>
8383 public virtual void SerializeAsV3 ( IOpenApiWriter writer )
8484 {
@@ -126,7 +126,7 @@ public virtual void SerializeAsV2(IOpenApiWriter writer)
126126 /// <param name="writer">The OpenApiWriter.</param>
127127 /// <param name="action">The action to serialize the target object.</param>
128128 private protected void SerializeInternal ( IOpenApiWriter writer ,
129- Action < IOpenApiWriter , V > action )
129+ Action < IOpenApiWriter , U > action )
130130 {
131131 Utils . CheckArgumentNull ( writer ) ;
132132 if ( Target is not null )
0 commit comments