Class SchemaRegistry
- java.lang.Object
-
- io.smallrye.openapi.runtime.scanner.SchemaRegistry
-
public class SchemaRegistry extends Object
A simple registry used to track schemas that have been generated and inserted into the #/components section of the- Author:
- [email protected]
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SchemaRegistry.TypeKey
This class is used as the key when storingSchema
s in the registry.
-
Constructor Summary
Constructors Constructor Description SchemaRegistry(AnnotationScannerContext context)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.eclipse.microprofile.openapi.models.media.Schema
checkRegistration(org.jboss.jandex.Type type, Set<org.jboss.jandex.Type> views, TypeResolver resolver, org.eclipse.microprofile.openapi.models.media.Schema schema)
Check if the entityType is eligible for registration using the typeResolver.boolean
hasRef(org.jboss.jandex.Type instanceType, Set<org.jboss.jandex.Type> views)
boolean
hasSchema(org.jboss.jandex.Type instanceType, Set<org.jboss.jandex.Type> views)
boolean
hasSchema(org.jboss.jandex.Type type, Set<org.jboss.jandex.Type> views, TypeResolver resolver)
Convenience method to check if the current thread'sSchemaRegistry
contains a schema for the given type (which may require type resolution using resolver).boolean
isDisabled()
boolean
isTypeRegistrationSupported(org.jboss.jandex.Type type, org.eclipse.microprofile.openapi.models.media.Schema schema)
org.eclipse.microprofile.openapi.models.media.Schema
lookupRef(org.jboss.jandex.Type instanceType, Set<org.jboss.jandex.Type> views)
org.eclipse.microprofile.openapi.models.media.Schema
lookupSchema(org.jboss.jandex.Type instanceType, Set<org.jboss.jandex.Type> views)
org.eclipse.microprofile.openapi.models.media.Schema
register(org.jboss.jandex.Type type, Set<org.jboss.jandex.Type> views, TypeResolver resolver, org.eclipse.microprofile.openapi.models.media.Schema schema, BiFunction<SchemaRegistry,SchemaRegistry.TypeKey,org.eclipse.microprofile.openapi.models.media.Schema> registrationAction)
org.eclipse.microprofile.openapi.models.media.Schema
register(org.jboss.jandex.Type entityType, Set<org.jboss.jandex.Type> views, org.eclipse.microprofile.openapi.models.media.Schema schema)
Register the providedSchema
for the providedType
.org.eclipse.microprofile.openapi.models.media.Schema
registerReference(org.jboss.jandex.Type type, Set<org.jboss.jandex.Type> views, TypeResolver resolver, org.eclipse.microprofile.openapi.models.media.Schema schema)
Attempt to register ONLY a reference to entityType using the typeResolver.void
setDisabled(boolean disabled)
-
-
-
Constructor Detail
-
SchemaRegistry
public SchemaRegistry(AnnotationScannerContext context)
-
-
Method Detail
-
checkRegistration
public org.eclipse.microprofile.openapi.models.media.Schema checkRegistration(org.jboss.jandex.Type type, Set<org.jboss.jandex.Type> views, TypeResolver resolver, org.eclipse.microprofile.openapi.models.media.Schema schema)
Check if the entityType is eligible for registration using the typeResolver. The eligible kinds of types areCLASS
PARAMETERIZED_TYPE
TYPE_VARIABLE
WILDCARD_TYPE
mp.openapi.extensions.smallrye.schema-references.enable
, and the resolved type is available in the registry'sIndexView
then the schema can be registered. Only if the type has not already been registered earlier will it be added.- Parameters:
type
- theType
theSchema
applies toresolver
- aTypeResolver
that will be used to resolve parameterized and wildcard typesschema
-Schema
to add to the registry- Returns:
- the same schema if not eligible for registration, or a reference to the schema registered for the given Type
-
registerReference
public org.eclipse.microprofile.openapi.models.media.Schema registerReference(org.jboss.jandex.Type type, Set<org.jboss.jandex.Type> views, TypeResolver resolver, org.eclipse.microprofile.openapi.models.media.Schema schema)
Attempt to register ONLY a reference to entityType using the typeResolver. The eligible kinds of types areCLASS
PARAMETERIZED_TYPE
TYPE_VARIABLE
WILDCARD_TYPE
mp.openapi.extensions.smallrye.schema-references.enable
, and the resolved type is available in the registry'sIndexView
then the schema reference can be registered. Only if the type has not already been registered earlier will it be added.- Parameters:
type
- theType
theSchema
applies toresolver
- aTypeResolver
that will be used to resolve parameterized and wildcard typesschema
-Schema
to add to the registry- Returns:
- the same schema if not eligible for registration, or a reference to the schema registered for the given Type
-
register
public org.eclipse.microprofile.openapi.models.media.Schema register(org.jboss.jandex.Type type, Set<org.jboss.jandex.Type> views, TypeResolver resolver, org.eclipse.microprofile.openapi.models.media.Schema schema, BiFunction<SchemaRegistry,SchemaRegistry.TypeKey,org.eclipse.microprofile.openapi.models.media.Schema> registrationAction)
-
hasSchema
public boolean hasSchema(org.jboss.jandex.Type type, Set<org.jboss.jandex.Type> views, TypeResolver resolver)
Convenience method to check if the current thread'sSchemaRegistry
contains a schema for the given type (which may require type resolution using resolver).- Parameters:
type
- type to check for existence of schemaviews
- types applied to the currently-active JsonView (Jackson annotation)resolver
- resolver for type parameter- Returns:
- true when schema references are enabled and the type is present in the registry, otherwise false
-
register
public org.eclipse.microprofile.openapi.models.media.Schema register(org.jboss.jandex.Type entityType, Set<org.jboss.jandex.Type> views, org.eclipse.microprofile.openapi.models.media.Schema schema)
Register the providedSchema
for the providedType
. If an existing schema has already been registered for the type, it will be replaced by the schema given in this method.- Parameters:
entityType
- the type theSchema
applies toviews
-schema
-Schema
to add to the registry- Returns:
- a reference to the newly registered
Schema
-
lookupRef
public org.eclipse.microprofile.openapi.models.media.Schema lookupRef(org.jboss.jandex.Type instanceType, Set<org.jboss.jandex.Type> views)
-
hasRef
public boolean hasRef(org.jboss.jandex.Type instanceType, Set<org.jboss.jandex.Type> views)
-
lookupSchema
public org.eclipse.microprofile.openapi.models.media.Schema lookupSchema(org.jboss.jandex.Type instanceType, Set<org.jboss.jandex.Type> views)
-
hasSchema
public boolean hasSchema(org.jboss.jandex.Type instanceType, Set<org.jboss.jandex.Type> views)
-
isTypeRegistrationSupported
public boolean isTypeRegistrationSupported(org.jboss.jandex.Type type, org.eclipse.microprofile.openapi.models.media.Schema schema)
-
isDisabled
public boolean isDisabled()
-
setDisabled
public void setDisabled(boolean disabled)
-
-