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:
- eric.wittmann@gmail.com
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classSchemaRegistry.TypeKeyThis class is used as the key when storingSchemas 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.SchemacheckRegistration(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.booleanhasRef(org.jboss.jandex.Type instanceType, Set<org.jboss.jandex.Type> views)booleanhasSchema(org.jboss.jandex.Type instanceType, Set<org.jboss.jandex.Type> views)booleanhasSchema(org.jboss.jandex.Type type, Set<org.jboss.jandex.Type> views, TypeResolver resolver)Convenience method to check if the current thread'sSchemaRegistrycontains a schema for the given type (which may require type resolution using resolver).booleanisDisabled()booleanisTypeRegistrationSupported(org.jboss.jandex.Type type, org.eclipse.microprofile.openapi.models.media.Schema schema)org.eclipse.microprofile.openapi.models.media.SchemalookupRef(org.jboss.jandex.Type instanceType, Set<org.jboss.jandex.Type> views)org.eclipse.microprofile.openapi.models.media.SchemalookupSchema(org.jboss.jandex.Type instanceType, Set<org.jboss.jandex.Type> views)org.eclipse.microprofile.openapi.models.media.Schemaregister(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.Schemaregister(org.jboss.jandex.Type entityType, Set<org.jboss.jandex.Type> views, org.eclipse.microprofile.openapi.models.media.Schema schema)Register the providedSchemafor the providedType.org.eclipse.microprofile.openapi.models.media.SchemaregisterReference(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.voidsetDisabled(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 areCLASSPARAMETERIZED_TYPETYPE_VARIABLEWILDCARD_TYPE
mp.openapi.extensions.smallrye.schema-references.enable, and the resolved type is available in the registry'sIndexViewthen the schema can be registered. Only if the type has not already been registered earlier will it be added.- Parameters:
type- theTypetheSchemaapplies toresolver- aTypeResolverthat will be used to resolve parameterized and wildcard typesschema-Schemato 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 areCLASSPARAMETERIZED_TYPETYPE_VARIABLEWILDCARD_TYPE
mp.openapi.extensions.smallrye.schema-references.enable, and the resolved type is available in the registry'sIndexViewthen the schema reference can be registered. Only if the type has not already been registered earlier will it be added.- Parameters:
type- theTypetheSchemaapplies toresolver- aTypeResolverthat will be used to resolve parameterized and wildcard typesschema-Schemato 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'sSchemaRegistrycontains 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 providedSchemafor 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 theSchemaapplies toviews-schema-Schemato 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)
-
-