Class CustomModelResolver

java.lang.Object
io.swagger.v3.core.jackson.AbstractModelConverter
io.swagger.v3.core.jackson.ModelResolver
ubic.gemma.rest.swagger.resolver.CustomModelResolver
All Implemented Interfaces:
io.swagger.v3.core.converter.ModelConverter

@Component public class CustomModelResolver extends io.swagger.v3.core.jackson.ModelResolver
Resolve Arg parameters' schema.

This should always be added last with ModelConverters.addConverter(ModelConverter) to take priority as it addresses a glitch in the original ModelResolver.

Author:
poirigui
  • Field Summary

    Fields inherited from class io.swagger.v3.core.jackson.ModelResolver

    composedModelPropertiesAsSibling, configuration, enumsAsRef, NOT_NULL_ANNOTATIONS, SET_PROPERTY_OF_COMPOSED_MODEL_AS_SIBLING, SET_PROPERTY_OF_ENUMS_AS_REF, validatorProcessor

    Fields inherited from class io.swagger.v3.core.jackson.AbstractModelConverter

    _mapper, _resolvedTypeNames, _typeNameResolver
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    io.swagger.v3.oas.models.media.Schema
    resolve(io.swagger.v3.core.converter.AnnotatedType type, io.swagger.v3.core.converter.ModelConverterContext context, Iterator<io.swagger.v3.core.converter.ModelConverter> chain)
     
    protected List<String>
    resolveAllowableValues(com.fasterxml.jackson.databind.introspect.Annotated a, Annotation[] annotations, io.swagger.v3.oas.annotations.media.Schema schema)
    protected String
    resolveDescription(com.fasterxml.jackson.databind.introspect.Annotated a, Annotation[] annotations, io.swagger.v3.oas.annotations.media.Schema schema)
     
    protected Map<String,Object>
    resolveExtensions(com.fasterxml.jackson.databind.introspect.Annotated a, Annotation[] annotations, io.swagger.v3.oas.annotations.media.Schema schema)
     

    Methods inherited from class io.swagger.v3.core.jackson.ModelResolver

    _addEnumProps, _createSchemaForEnum, _isOptionalType, addRequiredItem, applyBeanValidatorAnnotations, applyBeanValidatorAnnotations, applyBeanValidatorAnnotationsNoGroups, applySchemaResolution, buildRefSchemaIfObject, checkGroupValidation, configuration, decorateModelName, findJsonValueType, getComposedSchemaReferencedClasses, getConfiguration, getSchemaResolution, hasHiddenAnnotation, hiddenByJsonView, ignore, ignore, isArraySchema, isInferredObjectSchema, isNumberSchema, isObjectSchema, isOpenapi31, isStringSchema, objectMapper, openapi31, resolve$anchor, resolve$comment, resolve$dynamicAnchor, resolve$dynamicRef, resolve$schema, resolve$vocabulary, resolveAccessMode, resolveConst, resolveContains, resolveContentEncoding, resolveContentMediaType, resolveDefaultValue, resolveDependentRequired, resolveDependentSchemas, resolveDependentSchemas, resolveDeprecated, resolveDiscriminator, resolveDiscriminatorProperty, resolveExample, resolveExclusiveMaximum, resolveExclusiveMaximumValue, resolveExclusiveMinimum, resolveExclusiveMinimumValue, resolveExtensions, resolveExternalDocumentation, resolveExternalDocumentation, resolveFormat, resolveGroupsValidationStrategy, resolveId, resolveIgnoredProperties, resolveIgnoredProperties, resolveMaxContains, resolveMaximum, resolveMaxItems, resolveMaxLength, resolveMaxProperties, resolveMinContains, resolveMinimum, resolveMinItems, resolveMinLength, resolveMinProperties, resolveMultipleOf, resolveNullable, resolvePattern, resolvePatternProperties, resolvePatternProperties, resolveProperties, resolveReadOnly, resolveRequiredMode, resolveRequiredProperties, resolveSchemaMembers, resolveSchemaMembers, resolveSchemaMembers, resolveSchemaProperties, resolveTitle, resolveUnevaluatedItems, resolveUniqueItems, resolveValidationInvocationAnnotations, resolveValidationInvocationGroups, resolveWrapping, resolveWriteOnly, resolveXml, schemaResolution, setConfiguration, setOpenapi31, setSchemaResolution, shouldIgnoreClass, updateRequiredItem

    Methods inherited from class io.swagger.v3.core.jackson.AbstractModelConverter

    _findTypeName, _intr, _isSetType, _subTypeName, _typeName, _typeName, _typeQName

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • CustomModelResolver

      @Autowired public CustomModelResolver(SearchService searchService)
  • Method Details

    • resolve

      public io.swagger.v3.oas.models.media.Schema resolve(io.swagger.v3.core.converter.AnnotatedType type, io.swagger.v3.core.converter.ModelConverterContext context, Iterator<io.swagger.v3.core.converter.ModelConverter> chain)
      Specified by:
      resolve in interface io.swagger.v3.core.converter.ModelConverter
      Overrides:
      resolve in class io.swagger.v3.core.jackson.ModelResolver
    • resolveAllowableValues

      protected List<String> resolveAllowableValues(com.fasterxml.jackson.databind.introspect.Annotated a, Annotation[] annotations, io.swagger.v3.oas.annotations.media.Schema schema)
      Resolves allowed values for the SearchWebService.search(QueryArg, TaxonArg, PlatformArg, List, LimitArg, ExcludeArg) resultTypes argument.

      This ensures that the OpenAPI specification exposes all supported search result types in the SearchService as allowable values.

      Overrides:
      resolveAllowableValues in class io.swagger.v3.core.jackson.ModelResolver
    • resolveDescription

      protected String resolveDescription(com.fasterxml.jackson.databind.introspect.Annotated a, Annotation[] annotations, io.swagger.v3.oas.annotations.media.Schema schema)
      Overrides:
      resolveDescription in class io.swagger.v3.core.jackson.ModelResolver
    • resolveExtensions

      protected Map<String,Object> resolveExtensions(com.fasterxml.jackson.databind.introspect.Annotated a, Annotation[] annotations, io.swagger.v3.oas.annotations.media.Schema schema)
      Overrides:
      resolveExtensions in class io.swagger.v3.core.jackson.ModelResolver