Class SchemaRegistry
java.lang.Object
io.smallrye.openapi.runtime.scanner.SchemaRegistry
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 ClassesModifier and TypeClassDescriptionstatic final classThis class is used as the key when storingSchemas in the registry. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.eclipse.microprofile.openapi.models.media.SchemacheckRegistration(org.jboss.jandex.Type type, Map<org.jboss.jandex.Type, Boolean> views, TypeResolver resolver, org.eclipse.microprofile.openapi.models.media.Schema schema) Check if the entityType is eligible for registration using the typeResolver.booleanbooleanbooleanhasSchema(org.jboss.jandex.Type type, Map<org.jboss.jandex.Type, Boolean> 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).booleanbooleanisTypeRegistrationSupported(org.jboss.jandex.Type type, org.eclipse.microprofile.openapi.models.media.Schema schema) org.eclipse.microprofile.openapi.models.media.Schemaorg.eclipse.microprofile.openapi.models.media.SchemalookupSchema(org.jboss.jandex.Type instanceType, Map<org.jboss.jandex.Type, Boolean> views) org.eclipse.microprofile.openapi.models.media.Schemaregister(org.jboss.jandex.Type type, Map<org.jboss.jandex.Type, Boolean> 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, Map<org.jboss.jandex.Type, Boolean> 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, Map<org.jboss.jandex.Type, Boolean> 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 Details
-
SchemaRegistry
-
-
Method Details
-
checkRegistration
public org.eclipse.microprofile.openapi.models.media.Schema checkRegistration(org.jboss.jandex.Type type, Map<org.jboss.jandex.Type, Boolean> 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 toviews- types applied to the currently-active JsonView (Jackson annotation)resolver- 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, Map<org.jboss.jandex.Type, Boolean> 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 toviews- types applied to the currently-active JsonView (Jackson annotation)resolver- 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, Map<org.jboss.jandex.Type, Boolean> 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, Map<org.jboss.jandex.Type, Boolean> 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, Map<org.jboss.jandex.Type, Boolean> 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
-
hasRef
-
lookupSchema
-
hasSchema
-
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)
-