Skip to content

Commit 52030f0

Browse files
committed
Fix missing Visitors
1 parent bb960b3 commit 52030f0

File tree

2 files changed

+36
-1
lines changed

2 files changed

+36
-1
lines changed

src/Microsoft.OpenApi/Services/OpenApiVisitorBase.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,20 @@ public virtual void Visit(OpenApiSecurityRequirement securityRequirement)
276276
{
277277
}
278278

279+
/// <summary>
280+
/// Visits <see cref="OpenApiSecurityScheme"/>
281+
/// </summary>
282+
public virtual void Visit(OpenApiSecurityScheme securityScheme)
283+
{
284+
}
285+
286+
/// <summary>
287+
/// Visits <see cref="OpenApiExample"/>
288+
/// </summary>
289+
public virtual void Visit(OpenApiExample example)
290+
{
291+
}
292+
279293
/// <summary>
280294
/// Visits list of <see cref="OpenApiTag"/>
281295
/// </summary>
@@ -325,5 +339,13 @@ public virtual void Visit(IDictionary<string, OpenApiServerVariable> serverVaria
325339
public virtual void Visit(IDictionary<string, OpenApiEncoding> encodings)
326340
{
327341
}
342+
343+
/// <summary>
344+
/// Visits IOpenApiReferenceable instances that are references and not in components
345+
/// </summary>
346+
/// <param name="referenceable">referenced object</param>
347+
public virtual void Visit(IOpenApiReferenceable referenceable)
348+
{
349+
}
328350
}
329351
}

src/Microsoft.OpenApi/Services/OpenApiWalker.cs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -995,6 +995,14 @@ internal void Walk(OpenApiSecurityScheme securityScheme)
995995
Walk(securityScheme as IOpenApiExtensible);
996996
}
997997

998+
/// <summary>
999+
/// Visits <see cref="OpenApiSecurityScheme"/> and child objects
1000+
/// </summary>
1001+
internal void Walk(IOpenApiReferenceable referenceable)
1002+
{
1003+
_visitor.Visit(referenceable);
1004+
}
1005+
9981006
/// <summary>
9991007
/// Dispatcher method that enables using a single method to walk the model
10001008
/// starting from any <see cref="IOpenApiElement"/>
@@ -1057,7 +1065,12 @@ private void Walk(string context, Action walk)
10571065
/// </summary>
10581066
private bool IsReference(IOpenApiReferenceable referenceable)
10591067
{
1060-
return referenceable.Reference != null && !_inComponents;
1068+
var isReference = referenceable.Reference != null && !_inComponents;
1069+
if (isReference)
1070+
{
1071+
Walk(referenceable);
1072+
}
1073+
return isReference;
10611074
}
10621075

10631076
private void EnterComponents()

0 commit comments

Comments
 (0)