Class Swagger2Module
java.lang.Object
com.github.victools.jsonschema.module.swagger2.Swagger2Module
- All Implemented Interfaces:
com.github.victools.jsonschema.generator.Module
public class Swagger2Module
extends Object
implements com.github.victools.jsonschema.generator.Module
JSON Schema Generator Module - Swagger (2.x).
- Since:
- 4.13.0
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidapplyToConfigBuilder(com.github.victools.jsonschema.generator.SchemaGeneratorConfigBuilder builder) protected BooleancheckNullable(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Determine whether the given field/method may be null based on@Schema(nullable = true).protected booleancheckReadOnly(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Determine whether the given field/method is deemed read-only based on@Schema(accessMode = AccessMode.READ_ONLY).protected booleancheckRequired(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Determine whether the given field/method is deemed required in its containing type based on@Schema(required = true).protected booleancheckWriteOnly(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Determine whether the given field/method is deemed write-only based on@Schema(accessMode = AccessMode.WRITE_ONLY).protected TypemapAdditionalPropertiesEnumValue(io.swagger.v3.oas.annotations.media.Schema annotation) Derive the allowed type of a schema's additional properties from the given annotation.protected voidoverrideInstanceAttributes(tools.jackson.databind.node.ObjectNode memberAttributes, com.github.victools.jsonschema.generator.MemberScope<?, ?> member, com.github.victools.jsonschema.generator.SchemaGenerationContext context) Consider various remaining aspects.protected com.github.victools.jsonschema.generator.CustomPropertyDefinitionprovideCustomSchemaDefinition(com.github.victools.jsonschema.generator.MemberScope<?, ?> scope, com.github.victools.jsonschema.generator.SchemaGenerationContext context) Implementation of theCustomPropertyDefinitionProviderto consider external references given in@Schema(ref = ...).protected IntegerresolveArrayMaxItems(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Determine the given field/method'sArraySchemaannotation is present and contains a specificmaxItems.protected IntegerresolveArrayMinItems(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Determine the given field/method'sArraySchemaannotation is present and contains a specificminItems.protected BooleanresolveArrayUniqueItems(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Determine the given field/method'sArraySchemaannotation is present and is marked asuniqueItems = true.protected StringresolveDefault(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Look-up the default value for the given field/method from@Schema(defaultValue = ...).protected StringresolveDescription(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Look-up description from@Schema(description = ...)for given field/method.resolveEnum(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Look-up the finite list of possible values from@Schema(allowableValues = ...).protected BigDecimalresolveExclusiveMaximum(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Look-up the exclusive maximum value from@Schema(maximum = ..., exclusiveMaxium = true)for the given field/method.protected BigDecimalresolveExclusiveMinimum(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Look-up the exclusive minimum value from@Schema(minimum = ..., exclusiveMinium = true)for the given field/method.protected StringresolveFormat(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Look-up the value from@Schema(format = ...)for the given field/method.protected BigDecimalresolveInclusiveMaximum(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Look-up the inclusive maximum value from@Schema(maximum = ..., exclusiveMaxium = false)for the given field/method.protected BigDecimalresolveInclusiveMinimum(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Look-up the inclusive minimum value from@Schema(minimum = ..., exclusiveMinium = false)for the given field/method.protected IntegerresolveMaxLength(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Look-up the value from@Schema(maxLength = ...)for the given field/method.protected IntegerresolveMinLength(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Look-up the value from@Schema(minLength = ...)for the given field/method.protected BigDecimalresolveMultipleOf(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Look-up the value from@Schema(multipleOf = ...)for the given field/method.protected StringresolvePattern(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Look-up the value from@Schema(pattern = ...)for the given field/method.protected StringresolvePropertyNameOverride(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Determine an alternative name for the given field/method, based on@Schema(name = ...).protected List<com.fasterxml.classmate.ResolvedType>resolveTargetTypeOverrides(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Derive target type override from@Schema(implementation = ...).protected StringresolveTitle(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Look-up title from@Schema(title = ...)for given field/method.protected booleanshouldBeIgnored(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Determine whether the given field/method should be skipped, based on@Schema(hidden = true).
-
Constructor Details
-
Swagger2Module
public Swagger2Module()
-
-
Method Details
-
applyToConfigBuilder
public void applyToConfigBuilder(com.github.victools.jsonschema.generator.SchemaGeneratorConfigBuilder builder) - Specified by:
applyToConfigBuilderin interfacecom.github.victools.jsonschema.generator.Module
-
resolveTargetTypeOverrides
protected List<com.fasterxml.classmate.ResolvedType> resolveTargetTypeOverrides(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Derive target type override from@Schema(implementation = ...).- Parameters:
member- field/method to determine target type override for- Returns:
- single target type override or null
-
shouldBeIgnored
protected boolean shouldBeIgnored(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Determine whether the given field/method should be skipped, based on@Schema(hidden = true).- Parameters:
member- field/method to check- Returns:
- whether to skip the field/method
-
resolvePropertyNameOverride
protected String resolvePropertyNameOverride(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Determine an alternative name for the given field/method, based on@Schema(name = ...).- Parameters:
member- field/method to look-up alternative property name for- Returns:
- alternative property name
-
resolveDescription
protected String resolveDescription(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Look-up description from@Schema(description = ...)for given field/method.- Parameters:
member- field/method to look-up description for- Returns:
- schema description
-
resolveTitle
Look-up title from@Schema(title = ...)for given field/method.- Parameters:
member- field/method to look-up title for- Returns:
- schema title
-
checkRequired
protected boolean checkRequired(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Determine whether the given field/method is deemed required in its containing type based on@Schema(required = true).- Parameters:
member- field/method to check- Returns:
- whether the field/method is required
-
checkNullable
Determine whether the given field/method may be null based on@Schema(nullable = true).- Parameters:
member- field/method to check- Returns:
- whether the field/method is nullable
-
mapAdditionalPropertiesEnumValue
protected Type mapAdditionalPropertiesEnumValue(io.swagger.v3.oas.annotations.media.Schema annotation) Derive the allowed type of a schema's additional properties from the given annotation.- Parameters:
annotation- annotation to check- Returns:
Object.class(if true or an external "$ref" is specified),Void.class(if forbidden) ornull(if undefined)
-
checkReadOnly
protected boolean checkReadOnly(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Determine whether the given field/method is deemed read-only based on@Schema(accessMode = AccessMode.READ_ONLY).- Parameters:
member- field/method to check- Returns:
- whether the field/method is read-only
-
checkWriteOnly
protected boolean checkWriteOnly(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Determine whether the given field/method is deemed write-only based on@Schema(accessMode = AccessMode.WRITE_ONLY).- Parameters:
member- field/method to check- Returns:
- whether the field/method is write-only
-
resolveEnum
protected List<String> resolveEnum(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Look-up the finite list of possible values from@Schema(allowableValues = ...).- Parameters:
member- field/method to determine allowed values for- Returns:
- applicable "const"/"enum" values or null
-
resolveDefault
Look-up the default value for the given field/method from@Schema(defaultValue = ...).- Parameters:
member- field/method to determine default value for- Returns:
- default property value or null
-
resolveMinLength
protected Integer resolveMinLength(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Look-up the value from@Schema(minLength = ...)for the given field/method.- Parameters:
member- field/method to look-up minimum string length for- Returns:
- minimum string length or null
-
resolveMaxLength
protected Integer resolveMaxLength(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Look-up the value from@Schema(maxLength = ...)for the given field/method.- Parameters:
member- field/method to look-up maximum string length for- Returns:
- maximum string length or null
-
resolveFormat
Look-up the value from@Schema(format = ...)for the given field/method.- Parameters:
member- field/method to look-up format for- Returns:
- format value or null
-
resolvePattern
Look-up the value from@Schema(pattern = ...)for the given field/method.- Parameters:
member- field/method to look-up pattern for- Returns:
- pattern value or null
-
resolveMultipleOf
protected BigDecimal resolveMultipleOf(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Look-up the value from@Schema(multipleOf = ...)for the given field/method.- Parameters:
member- field/method to look-up multipleOf for- Returns:
- multipleOf value or null
-
resolveExclusiveMaximum
protected BigDecimal resolveExclusiveMaximum(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Look-up the exclusive maximum value from@Schema(maximum = ..., exclusiveMaxium = true)for the given field/method.- Parameters:
member- field/method to look-up exclusiveMaximum for- Returns:
- exclusiveMaximum value or null
-
resolveInclusiveMaximum
protected BigDecimal resolveInclusiveMaximum(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Look-up the inclusive maximum value from@Schema(maximum = ..., exclusiveMaxium = false)for the given field/method.- Parameters:
member- field/method to look-up maximum for- Returns:
- maximum value or null
-
resolveExclusiveMinimum
protected BigDecimal resolveExclusiveMinimum(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Look-up the exclusive minimum value from@Schema(minimum = ..., exclusiveMinium = true)for the given field/method.- Parameters:
member- field/method to look-up exclusiveMinimum for- Returns:
- exclusiveMinimum value or null
-
resolveInclusiveMinimum
protected BigDecimal resolveInclusiveMinimum(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Look-up the inclusive minimum value from@Schema(minimum = ..., exclusiveMinium = false)for the given field/method.- Parameters:
member- field/method to look-up minimum for- Returns:
- minimum value or null
-
resolveArrayMinItems
protected Integer resolveArrayMinItems(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Determine the given field/method'sArraySchemaannotation is present and contains a specificminItems.- Parameters:
member- potentially annotated field/method- Returns:
- the
@ArraySchema(minItems)value, otherwisenull
-
resolveArrayMaxItems
protected Integer resolveArrayMaxItems(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Determine the given field/method'sArraySchemaannotation is present and contains a specificmaxItems.- Parameters:
member- potentially annotated field/method- Returns:
- the
@ArraySchema(maxItems)value, otherwisenull
-
resolveArrayUniqueItems
protected Boolean resolveArrayUniqueItems(com.github.victools.jsonschema.generator.MemberScope<?, ?> member) Determine the given field/method'sArraySchemaannotation is present and is marked asuniqueItems = true.- Parameters:
member- potentially annotated field/method- Returns:
- whether
@ArraySchema(uniqueItems = true)is present
-
provideCustomSchemaDefinition
protected com.github.victools.jsonschema.generator.CustomPropertyDefinition provideCustomSchemaDefinition(com.github.victools.jsonschema.generator.MemberScope<?, ?> scope, com.github.victools.jsonschema.generator.SchemaGenerationContext context) Implementation of theCustomPropertyDefinitionProviderto consider external references given in@Schema(ref = ...).- Parameters:
scope- field/method to determine custom definition forcontext- generation context- Returns:
- custom definition containing the looked-up external reference or null
-
overrideInstanceAttributes
protected void overrideInstanceAttributes(tools.jackson.databind.node.ObjectNode memberAttributes, com.github.victools.jsonschema.generator.MemberScope<?, ?> member, com.github.victools.jsonschema.generator.SchemaGenerationContext context) Consider various remaining aspects.@Schema(not = ...)@Schema(allOf = ...)@Schema(minProperties = ...)@Schema(maxProperties = ...)@Schema(requiredProperties = ...)
- Parameters:
memberAttributes- already collected schema for the field/methodmember- targeted field/methodcontext- generation context
-