add getActualInstanceRecursively (#6636)

This commit is contained in:
William Cheng
2020-06-17 22:45:26 +08:00
committed by GitHub
parent b729e1d723
commit 951aa7a9d9
4 changed files with 76 additions and 2 deletions

View File

@@ -63,6 +63,25 @@ public abstract class AbstractOpenApiSchema {
*/
public void setActualInstance(Object instance) {this.instance = instance;}
/**
* Get the instant recursively when the schemas defined in oneOf/anyof happen to be oneOf/anyOf schema as well
*
* @return an instance of the actual schema/object
*/
public Object getActualInstanceRecursively() {
return getActualInstanceRecursively(this);
}
private Object getActualInstanceRecursively(AbstractOpenApiSchema object) {
if (object.getActualInstance() == null) {
return null;
} else if (object.getActualInstance() instanceof AbstractOpenApiSchema) {
return getActualInstanceRecursively((AbstractOpenApiSchema)object.getActualInstance());
} else {
return object.getActualInstance();
}
}
/**
* Get the schema type (e.g. anyOf, oneOf)
*