protected Discriminator resolveDiscriminator(JavaType type, ModelConverterContext context) { io.swagger.v3.oas.annotations.media.Schema declaredSchemaAnnotation = AnnotationsUtils.getSchemaDeclaredAnnotation(type.getRawClass()); String disc = (declaredSchemaAnnotation == null) ? "" : declaredSchemaAnnotation.discriminatorProperty(); if (disc.isEmpty()) { // longer method would involve AnnotationIntrospector.findTypeResolver(...) but: JsonTypeInfo typeInfo = type.getRawClass().getDeclaredAnnotation(JsonTypeInfo.class); if (typeInfo != null) { disc = typeInfo.property(); } } if (!disc.isEmpty()) { Discriminator discriminator = new Discriminator() .propertyName(disc); if (declaredSchemaAnnotation != null) { DiscriminatorMapping mappings[] = declaredSchemaAnnotation.discriminatorMapping(); if (mappings != null && mappings.length > 0) { for (DiscriminatorMapping mapping : mappings) { if (!mapping.value().isEmpty() && !mapping.schema().equals(Void.class)) { discriminator.mapping(mapping.value(), constructRef(context.resolve(new AnnotatedType().type(mapping.schema())).getName())); } } } } return discriminator; } return null; }
b = b.typeProperty(info.property()); Class<?> defaultImpl = info.defaultImpl();
public static Value from(JsonTypeInfo src) { if (src == null) { return null; } return construct(src.use(), src.include(), src.property(), src.defaultImpl(), src.visible()); }
static String discriminator(Class<?> returnType) { if (returnType != null) { JsonTypeInfo annotation = returnType.getAnnotation(JsonTypeInfo.class); if (annotation != null) { return annotation.property(); } } return null; }
private boolean supports(final Field field) { return field.getDeclaringClass().isAnnotationPresent(JsonSubTypes.class) && field.getDeclaringClass().isAnnotationPresent(JsonTypeInfo.class) && field.getName().equals(field.getDeclaringClass().getAnnotation(JsonTypeInfo.class).property()); } }
private String getPropertyName(JsonTypeInfo typeInfo) { String property = typeInfo.property(); if (property.isEmpty()) { JsonTypeInfo.Id use = typeInfo.use(); property = use.getDefaultPropertyName(); } return property; }
@Override public void injectFields(final TypescriptInterface iface, final Class<?> javaClass) { final JsonTypeInfo typeInfoAnnotation = javaClass.getSuperclass().getAnnotation(JsonTypeInfo.class); final JsonSubTypes subTypesAnnotation = javaClass.getSuperclass().getAnnotation(JsonSubTypes.class); for (JsonSubTypes.Type subType : subTypesAnnotation.value()) { if (subType.value().equals(javaClass)) { final TypescriptField field = new TypescriptField(typeInfoAnnotation.property(), new TypescriptStringConstantType(subType.name()), TypescriptField.MANDATORY); iface.field(field); } } }
&& property.getName().equals(property.getDeclaringClass().getAnnotation(JsonTypeInfo.class).property())) { result.set("enum", stringArray(Property.subtypeNames(property.getDeclaringClass())));
final JsonTypeInfo jsonTypeInfo = beanClass.getAnnotation(JsonTypeInfo.class); if (jsonSubTypes != null && jsonTypeInfo != null && jsonTypeInfo.include() == JsonTypeInfo.As.PROPERTY) { final String propertyName = jsonTypeInfo.property(); for (JsonSubTypes.Type subType : jsonSubTypes.value()) { String propertyValue = null;
protected Discriminator resolveDiscriminator(JavaType type, ModelConverterContext context) { io.swagger.v3.oas.annotations.media.Schema declaredSchemaAnnotation = AnnotationsUtils.getSchemaDeclaredAnnotation(type.getRawClass()); String disc = (declaredSchemaAnnotation == null) ? "" : declaredSchemaAnnotation.discriminatorProperty(); if (disc.isEmpty()) { // longer method would involve AnnotationIntrospector.findTypeResolver(...) but: JsonTypeInfo typeInfo = type.getRawClass().getDeclaredAnnotation(JsonTypeInfo.class); if (typeInfo != null) { disc = typeInfo.property(); } } if (!disc.isEmpty()) { Discriminator discriminator = new Discriminator() .propertyName(disc); if (declaredSchemaAnnotation != null) { DiscriminatorMapping mappings[] = declaredSchemaAnnotation.discriminatorMapping(); if (mappings != null && mappings.length > 0) { for (DiscriminatorMapping mapping : mappings) { if (!mapping.value().isEmpty() && !mapping.schema().equals(Void.class)) { discriminator.mapping(mapping.value(), constructRef(context.resolve(new AnnotatedType().type(mapping.schema())).getName())); } } } } return discriminator; } return null; }
b = b.typeProperty(info.property()); Class<?> defaultImpl = info.defaultImpl();
b = b.typeProperty(info.property()); Class<?> defaultImpl = info.defaultImpl();
b = b.typeProperty(info.property()); Class<?> defaultImpl = info.defaultImpl();
b = b.typeProperty(info.property()); Class<?> defaultImpl = info.defaultImpl();
b = b.typeProperty(info.property()); Class<?> defaultImpl = info.defaultImpl(); if (defaultImpl != JsonTypeInfo.None.class) {
b = b.typeProperty(info.property()); Class<?> defaultImpl = info.defaultImpl(); if (defaultImpl != JsonTypeInfo.None.class) {