-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathtypeInfoAnnotation.mustache
34 lines (33 loc) · 1.87 KB
/
typeInfoAnnotation.mustache
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{{#jackson}}
@JsonIgnoreProperties(
{{^useCustomTemplateCode}}
value = "{{{discriminator.propertyBaseName}}}", // ignore manually set {{{discriminator.propertyBaseName}}}, it will be automatically generated by Jackson during serialization
allowSetters = true // allows the {{{discriminator.propertyBaseName}}} to be set during deserialization
{{/useCustomTemplateCode}}
{{#useCustomTemplateCode}}
allowSetters = true, // allows the {{{discriminator.propertyBaseName}}} to be set during deserialization
ignoreUnknown = true
{{/useCustomTemplateCode}}
)
{{^useCustomTemplateCode}}
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "{{{discriminator.propertyBaseName}}}", visible = true)
{{/useCustomTemplateCode}}
{{#useCustomTemplateCode}}
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "{{{discriminator.propertyBaseName}}}", visible = true)
{{/useCustomTemplateCode}}
{{#discriminator.mappedModels}}
{{#-first}}
@JsonSubTypes({
{{/-first}}
@JsonSubTypes.Type(value = {{modelName}}.class, name = "{{^vendorExtensions.x-discriminator-value}}{{mappingName}}{{/vendorExtensions.x-discriminator-value}}{{#vendorExtensions.x-discriminator-value}}{{{vendorExtensions.x-discriminator-value}}}{{/vendorExtensions.x-discriminator-value}}"),
{{#-last}}
})
{{/-last}}
{{/discriminator.mappedModels}}
{{/jackson}}
{{#jsonbPolymorphism}}
@JsonbTypeInfo(key = "{{{discriminator.propertyBaseName}}}"{{#discriminator.mappedModels}}{{#-first}}, value = {
{{/-first}}
@JsonbSubtype(alias = "{{^vendorExtensions.x-discriminator-value}}{{mappingName}}{{/vendorExtensions.x-discriminator-value}}{{#vendorExtensions.x-discriminator-value}}{{{vendorExtensions.x-discriminator-value}}}{{/vendorExtensions.x-discriminator-value}}", type = {{modelName}}.class),
{{#-last}}
}{{/-last}}{{/discriminator.mappedModels}}){{/jsonbPolymorphism}}