Class SchemaGeneratorConfigPart<M extends MemberScope<?,​?>>

  • Type Parameters:
    M - type of the (resolved) member to analyse

    public class SchemaGeneratorConfigPart<M extends MemberScope<?,​?>>
    extends Object
    Generic collection of reflection based analysis for populating a JSON Schema from a certain kind of member.
    • Constructor Detail

      • SchemaGeneratorConfigPart

        public SchemaGeneratorConfigPart()
    • Method Detail

      • withInstanceAttributeOverride

        public SchemaGeneratorConfigPart<M> withInstanceAttributeOverride​(InstanceAttributeOverride<M> override)
        Setter for override of attributes on a given JSON Schema node in the respective member.
        Parameters:
        override - override of a given JSON Schema node's instance attributes
        Returns:
        this config part (for chaining)
      • getInstanceAttributeOverrides

        public List<InstanceAttributeOverride<M>> getInstanceAttributeOverrides()
        Getter for the applicable instance attribute overrides.
        Returns:
        overrides of a given JSON Schema node's instance attributes
      • withIgnoreCheck

        public SchemaGeneratorConfigPart<M> withIgnoreCheck​(Predicate<M> check)
        Setter for ignore check.
        Parameters:
        check - how to determine whether a given reference should be ignored
        Returns:
        this config part (for chaining)
      • shouldIgnore

        public boolean shouldIgnore​(M member)
        Determine whether a given member should be included – ignoring member if any inclusion check returns false.
        Parameters:
        member - member to check
        Returns:
        whether the member should be ignored (defaults to false)
      • withRequiredCheck

        public SchemaGeneratorConfigPart<M> withRequiredCheck​(Predicate<M> check)
        Setter for required check.
        Parameters:
        check - how to determine whether a given reference should have required value
        Returns:
        this config part (for chaining)
      • isRequired

        public boolean isRequired​(M member)
        Determine whether a given member should be indicated as being required in its declaring type.
        Parameters:
        member - member to check
        Returns:
        whether the member is required (defaults to false)
      • withNullableCheck

        public SchemaGeneratorConfigPart<M> withNullableCheck​(ConfigFunction<M,​Boolean> check)
        Setter for nullable check.
        Parameters:
        check - how to determine whether a given reference should be nullable
        Returns:
        this config part (for chaining)
      • isNullable

        public Boolean isNullable​(M member)
        Determine whether a given member is nullable.
        Parameters:
        member - member to check
        Returns:
        whether the member is nullable (may be null if not specified)
      • withTargetTypeOverrideResolver

        public SchemaGeneratorConfigPart<M> withTargetTypeOverrideResolver​(ConfigFunction<M,​com.fasterxml.classmate.ResolvedType> resolver)
        Setter for target type resolver, expecting the respective member and the default type as inputs.
        Parameters:
        resolver - how to determine the alternative target type
        Returns:
        this config part (for chaining)
      • resolveTargetTypeOverride

        public com.fasterxml.classmate.ResolvedType resolveTargetTypeOverride​(M member)
        Determine the alternative target type from a given member.
        Parameters:
        member - member to determine the target type override for
        Returns:
        target type of member (may be null)
        See Also:
        MemberScope.getDeclaredType(), MemberScope.getOverriddenType()
      • withPropertyNameOverrideResolver

        public SchemaGeneratorConfigPart<M> withPropertyNameOverrideResolver​(ConfigFunction<M,​String> resolver)
        Setter for property name resolver, expecting the respective member and the default name as inputs.
        Parameters:
        resolver - how to determine the alternative name in a parent JSON Schema's "properties"
        Returns:
        this config part (for chaining)
      • resolvePropertyNameOverride

        public String resolvePropertyNameOverride​(M member)
        Determine the alternative name in a parent JSON Schema's "properties" from a given member.
        Parameters:
        member - member to determine the property name for
        Returns:
        name in a parent JSON Schema's "properties" (may be null, thereby falling back on the default value)
      • withTitleResolver

        public SchemaGeneratorConfigPart<M> withTitleResolver​(ConfigFunction<M,​String> resolver)
        Setter for "title" resolver.
        Parameters:
        resolver - how to determine the "title" of a JSON Schema
        Returns:
        this config part (for chaining)
      • resolveTitle

        public String resolveTitle​(M member)
        Determine the "title" of a given member.
        Parameters:
        member - member to determine "title" value for
        Returns:
        "title" in a JSON Schema (may be null)
      • withDescriptionResolver

        public SchemaGeneratorConfigPart<M> withDescriptionResolver​(ConfigFunction<M,​String> resolver)
        Setter for "description" resolver.
        Parameters:
        resolver - how to determine the "description" of a JSON Schema
        Returns:
        this config part (for chaining)
      • resolveDescription

        public String resolveDescription​(M member)
        Determine the "description" of a given member.
        Parameters:
        member - member to determine "description" value for
        Returns:
        "description" in a JSON Schema (may be null)
      • withDefaultResolver

        public SchemaGeneratorConfigPart<M> withDefaultResolver​(ConfigFunction<M,​Object> resolver)
        Setter for "default" resolver.
        Parameters:
        resolver - how to determine the "default" of a JSON Schema
        Returns:
        this config part (for chaining)
      • resolveDefault

        public Object resolveDefault​(M member)
        Determine the "default" of a given member.
        Parameters:
        member - member to determine "default" value for
        Returns:
        "default" in a JSON Schema (may be null)
      • withEnumResolver

        public SchemaGeneratorConfigPart<M> withEnumResolver​(ConfigFunction<M,​Collection<?>> resolver)
        Setter for "enum"/"const" resolver.
        Parameters:
        resolver - how to determine the "enum"/"const" of a JSON Schema
        Returns:
        this config part (for chaining)
      • resolveEnum

        public Collection<?> resolveEnum​(M member)
        Determine the "enum"/"const" of a given member.
        Parameters:
        member - member to determine "enum"/"const" value for
        Returns:
        "enum"/"const" in a JSON Schema (may be null)
      • withStringMinLengthResolver

        public SchemaGeneratorConfigPart<M> withStringMinLengthResolver​(ConfigFunction<M,​Integer> resolver)
        Setter for "minLength" resolver.
        Parameters:
        resolver - how to determine the "minLength" of a JSON Schema
        Returns:
        this config part (for chaining)
      • resolveStringMinLength

        public Integer resolveStringMinLength​(M member)
        Determine the "minLength" of a given member.
        Parameters:
        member - member to determine "minLength" value for
        Returns:
        "minLength" in a JSON Schema (may be null)
      • withStringMaxLengthResolver

        public SchemaGeneratorConfigPart<M> withStringMaxLengthResolver​(ConfigFunction<M,​Integer> resolver)
        Setter for "maxLength" resolver.
        Parameters:
        resolver - how to determine the "maxLength" of a JSON Schema
        Returns:
        this config part (for chaining)
      • resolveStringMaxLength

        public Integer resolveStringMaxLength​(M member)
        Determine the "maxLength" of a given member.
        Parameters:
        member - member to determine "maxLength" value for
        Returns:
        "maxLength" in a JSON Schema (may be null)
      • withStringFormatResolver

        public SchemaGeneratorConfigPart<M> withStringFormatResolver​(ConfigFunction<M,​String> resolver)
        Setter for "format" resolver.
        Parameters:
        resolver - how to determine the "format" of a JSON Schema
        Returns:
        this config part (for chaining)
      • resolveStringFormat

        public String resolveStringFormat​(M member)
        Determine the "format" of a given member.
        Parameters:
        member - member to determine "format" value for
        Returns:
        "format" in a JSON Schema (may be null)
      • withStringPatternResolver

        public SchemaGeneratorConfigPart<M> withStringPatternResolver​(ConfigFunction<M,​String> resolver)
        Setter for "format" resolver.
        Parameters:
        resolver - how to determine the "format" of a JSON Schema
        Returns:
        this config part (for chaining)
      • resolveStringPattern

        public String resolveStringPattern​(M member)
        Determine the "format" of a given member.
        Parameters:
        member - member to determine "format" value for
        Returns:
        "format" in a JSON Schema (may be null)
      • withNumberInclusiveMinimumResolver

        public SchemaGeneratorConfigPart<M> withNumberInclusiveMinimumResolver​(ConfigFunction<M,​BigDecimal> resolver)
        Setter for "minimum" resolver.
        Parameters:
        resolver - how to determine the "minimum" of a JSON Schema
        Returns:
        this config part (for chaining)
      • resolveNumberInclusiveMinimum

        public BigDecimal resolveNumberInclusiveMinimum​(M member)
        Determine the "minimum" of a given member.
        Parameters:
        member - member to determine "minimum" value for
        Returns:
        "minimum" in a JSON Schema (may be null)
      • withNumberExclusiveMinimumResolver

        public SchemaGeneratorConfigPart<M> withNumberExclusiveMinimumResolver​(ConfigFunction<M,​BigDecimal> resolver)
        Setter for "exclusiveMinimum" resolver.
        Parameters:
        resolver - how to determine the "exclusiveMinimum" of a JSON Schema
        Returns:
        this config part (for chaining)
      • resolveNumberExclusiveMinimum

        public BigDecimal resolveNumberExclusiveMinimum​(M member)
        Determine the "exclusiveMinimum" of a given member.
        Parameters:
        member - member to determine "exclusiveMinimum" value for
        Returns:
        "exclusiveMinimum" in a JSON Schema (may be null)
      • withNumberInclusiveMaximumResolver

        public SchemaGeneratorConfigPart<M> withNumberInclusiveMaximumResolver​(ConfigFunction<M,​BigDecimal> resolver)
        Setter for "maximum" resolver.
        Parameters:
        resolver - how to determine the "maximum" of a JSON Schema
        Returns:
        this config part (for chaining)
      • resolveNumberInclusiveMaximum

        public BigDecimal resolveNumberInclusiveMaximum​(M member)
        Determine the "maximum" of a given member.
        Parameters:
        member - member to determine "maximum" value for
        Returns:
        "maximum" in a JSON Schema (may be null)
      • withNumberExclusiveMaximumResolver

        public SchemaGeneratorConfigPart<M> withNumberExclusiveMaximumResolver​(ConfigFunction<M,​BigDecimal> resolver)
        Setter for "exclusiveMaximum" resolver.
        Parameters:
        resolver - how to determine the "exclusiveMaximum" of a JSON Schema
        Returns:
        this config part (for chaining)
      • resolveNumberExclusiveMaximum

        public BigDecimal resolveNumberExclusiveMaximum​(M member)
        Determine the "exclusiveMaximum" of a given member.
        Parameters:
        member - member to determine "exclusiveMaximum" value for
        Returns:
        "exclusiveMaximum" in a JSON Schema (may be null)
      • withNumberMultipleOfResolver

        public SchemaGeneratorConfigPart<M> withNumberMultipleOfResolver​(ConfigFunction<M,​BigDecimal> resolver)
        Setter for "multipleOf" resolver.
        Parameters:
        resolver - how to determine the "multipleOf" of a JSON Schema
        Returns:
        this config part (for chaining)
      • resolveNumberMultipleOf

        public BigDecimal resolveNumberMultipleOf​(M member)
        Determine the "multipleOf" of a given member.
        Parameters:
        member - member to determine "multipleOf" value for
        Returns:
        "multipleOf" in a JSON Schema (may be null)
      • withArrayMinItemsResolver

        public SchemaGeneratorConfigPart<M> withArrayMinItemsResolver​(ConfigFunction<M,​Integer> resolver)
        Setter for "minItems" resolver.
        Parameters:
        resolver - how to determine the "minItems" of a JSON Schema
        Returns:
        this config part (for chaining)
      • resolveArrayMinItems

        public Integer resolveArrayMinItems​(M member)
        Determine the "minItems" of a given member.
        Parameters:
        member - member to determine "minItems" value for
        Returns:
        "minItems" in a JSON Schema (may be null)
      • withArrayMaxItemsResolver

        public SchemaGeneratorConfigPart<M> withArrayMaxItemsResolver​(ConfigFunction<M,​Integer> resolver)
        Setter for "maxItems" resolver.
        Parameters:
        resolver - how to determine the "maxItems" of a JSON Schema
        Returns:
        this config part (for chaining)
      • resolveArrayMaxItems

        public Integer resolveArrayMaxItems​(M member)
        Determine the "maxItems" of a given member.
        Parameters:
        member - member to determine "maxItems" value for
        Returns:
        "maxItems" in a JSON Schema (may be null)
      • withArrayUniqueItemsResolver

        public SchemaGeneratorConfigPart<M> withArrayUniqueItemsResolver​(ConfigFunction<M,​Boolean> resolver)
        Setter for "uniqueItems" resolver.
        Parameters:
        resolver - how to determine the "uniqueItems" of a JSON Schema
        Returns:
        this config part (for chaining)
      • resolveArrayUniqueItems

        public Boolean resolveArrayUniqueItems​(M member)
        Determine the "uniqueItems" of a given member.
        Parameters:
        member - member to determine "uniqueItems" value for
        Returns:
        "uniqueItems" in a JSON Schema (may be null)