mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-06-03 15:30:59 +00:00
[Feature][Java/Spring] Support Discriminator Based OneOf Interface (#11650)
* Fix OpenAPITools#5381 added x-is-one-of-interface extension for oneOf interface in mustache template * Fix OpenAPITools#5381 fixed name of model from UNKNOWN_BASE_TYPE to right one in api: operationId + OneOf Fix OpenAPITools#5381 parcelableModel is not required * Fix OpenAPITools#5381 removed not needed methods * Fix OpenAPITools#5381 catch NPE cases in preprocessOpenAPI updated samples * Fix OpenAPITools#5381 fixed generation of oneOf Models * Fix OpenAPITools#5381 addOneOfInterfaceModel only for cases when useOneOfInterfaces is true and for spring * Fix OpenAPITools#5381 NPE fix * Fix OpenAPITools#5381 spring: fixed use of oneOf Models in API * Fix OpenAPITools#5381 implementing oneOf for spring lib overriding methods with different behavior from default * Fix OpenAPITools#5381 added x-is-one-of-interface extension for oneOf interface in mustache template * Fix OpenAPITools#5381 fixed name of model from UNKNOWN_BASE_TYPE to right one in api: operationId + OneOf Fix OpenAPITools#5381 removed not needed methods Fix OpenAPITools#5381 fixed generation of oneOf Models Fix OpenAPITools#5381 addOneOfInterfaceModel only for cases when useOneOfInterfaces is true and for spring Fix OpenAPITools#5381 NPE fix for tests * Fix OpenAPITools#5381 fixed handing of composed schema with array * Fix OpenAPITools#5381 fixed NPE in addOneOfInterfaceModel * Fix OpenAPITools#5381 fixed generation of oneOf models with descriminator * Initial merge of 5.0 * Aligned with master formatting * Corrected spacing for class names to align with samples. * Merged master * Updated samples * Consolidate methods from JavaClient and SpringCodegen (mov up to AbstractJavaCodegen) * set useLegacyDiscriminator to false, format templates * Suport JsonTypeName, fq class name for spring.io.Resource * Generate Samples * Test full qualified usage of the spring Resource interface. * Add java-camel to samples.circleci.spring profile * Add more complex example combining inheritance and oneof-interface * Remove x-implements Serializable from JavaClientCodegen (moved to AbstractJavaCodegen) * Fix spacing before opening brace after extends/implements * Generate Samples * Add more complex example combining inheritance and oneof-interface * Generate Samples * Fix JsonTypeName annotation handling in Java and JavaSpring * Content mediatype is hardcoded in api.mustache #11511 * Generate Samples * OAS3 incorrect data type when providing a default value #11367 * Generate Samples * Fix JsonTypeName annotation handling in Java and JavaSpring * Generate Samples * getIsClassnameSanitized: use null safe equals * Fix JsonTypeName annotation handling in Java and JavaSpring (merge) * Generate Samples * Generate Samples * Add oneof sample * Generate Samples * Giv example oas spec a meaningful name, demo usage of oneOf in Model * Generate Samples * Remove unnecessary JsonTypeName include, add example for JsonTypeName (Bar_Create) * Generate Samples * Generate Samples Co-authored-by: Alexej <oleksejk@gmail.com> Co-authored-by: JBurgess <joel.burgess@gmail.com> Co-authored-by: William Cheng <wing328hk@gmail.com>
This commit is contained in:
parent
a3fb571a1b
commit
e07c7d1617
1
.github/workflows/samples-spring.yaml
vendored
1
.github/workflows/samples-spring.yaml
vendored
@ -39,6 +39,7 @@ jobs:
|
||||
- samples/openapi3/server/petstore/springboot-delegate
|
||||
- samples/server/petstore/spring-boot-nullable-set
|
||||
- samples/server/petstore/spring-boot-defaultInterface-unhandledException
|
||||
- samples/openapi3/server/petstore/spring-boot-oneof
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-java@v2
|
||||
|
10
bin/configs/spring-boot-oneof.yaml
Normal file
10
bin/configs/spring-boot-oneof.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
generatorName: spring
|
||||
outputDir: samples/openapi3/server/petstore/spring-boot-oneof
|
||||
inputSpec: modules/openapi-generator/src/test/resources/3_0/oneof_polymorphism_and_inheritance.yaml
|
||||
templateDir: modules/openapi-generator/src/main/resources/JavaSpring
|
||||
additionalProperties:
|
||||
groupId: org.openapitools.openapi3
|
||||
documentationProvider: springdoc
|
||||
artifactId: springboot-oneof
|
||||
snapshotVersion: "true"
|
||||
hideGenerationTimestamp: "true"
|
@ -843,7 +843,7 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
@Override
|
||||
@SuppressWarnings("unused")
|
||||
public void preprocessOpenAPI(OpenAPI openAPI) {
|
||||
if (useOneOfInterfaces) {
|
||||
if (useOneOfInterfaces && openAPI.getComponents() != null) {
|
||||
// we process the openapi schema here to find oneOf schemas and create interface models for them
|
||||
Map<String, Schema> schemas = new HashMap<>(openAPI.getComponents().getSchemas());
|
||||
if (schemas == null) {
|
||||
|
@ -1313,7 +1313,6 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public Map<String, Object> postProcessModels(Map<String, Object> objs) {
|
||||
// recursively add import for mapping one type to multiple imports
|
||||
@ -1333,14 +1332,12 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
|
||||
}
|
||||
}
|
||||
|
||||
List<Object> models = (List<Object>) objs.get("models");
|
||||
|
||||
for (Object _mo : models) {
|
||||
Map<String, Object> mo = (Map<String, Object>) _mo;
|
||||
// add x-implements for serializable to all models
|
||||
List<Map<String, Object>> models = (List<Map<String, Object>>) objs.get("models");
|
||||
for (Map<String, Object> mo : models) {
|
||||
CodegenModel cm = (CodegenModel) mo.get("model");
|
||||
|
||||
cm.getVendorExtensions().putIfAbsent("x-implements", new ArrayList<String>());
|
||||
if (this.serializableModel) {
|
||||
cm.getVendorExtensions().putIfAbsent("x-implements", new ArrayList<String>());
|
||||
((ArrayList<String>) cm.getVendorExtensions().get("x-implements")).add("Serializable");
|
||||
}
|
||||
}
|
||||
@ -2054,6 +2051,18 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
|
||||
return StringUtils.isNotBlank(implicitHeadersRegex) && parameter.baseName.matches(implicitHeadersRegex);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addImportsToOneOfInterface(List<Map<String, String>> imports) {
|
||||
if (additionalProperties.containsKey(JACKSON)) {
|
||||
for (String i : Arrays.asList("JsonSubTypes", "JsonTypeInfo")) {
|
||||
Map<String, String> oneImport = new HashMap<>();
|
||||
oneImport.put("import", importMapping.get(i));
|
||||
if (!imports.contains(oneImport)) {
|
||||
imports.add(oneImport);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public List<VendorExtension> getSupportedVendorExtensions() {
|
||||
List<VendorExtension> extensions = super.getSupportedVendorExtensions();
|
||||
|
@ -281,6 +281,8 @@ public class SpringCodegen extends AbstractJavaCodegen
|
||||
}
|
||||
|
||||
super.processOpts();
|
||||
useOneOfInterfaces = true;
|
||||
legacyDiscriminatorBehavior = false;
|
||||
|
||||
if (DocumentationProvider.SPRINGFOX.equals(getDocumentationProvider())) {
|
||||
LOGGER.warn("The springfox documentation provider is deprecated for removal. Use the springdoc provider instead.");
|
||||
|
@ -46,7 +46,7 @@ import javax.annotation.Generated;
|
||||
{{>enumOuterClass}}
|
||||
{{/isEnum}}
|
||||
{{^isEnum}}
|
||||
{{>pojo}}
|
||||
{{#vendorExtensions.x-is-one-of-interface}}{{>oneof_interface}}{{/vendorExtensions.x-is-one-of-interface}}{{^vendorExtensions.x-is-one-of-interface}}{{>pojo}}{{/vendorExtensions.x-is-one-of-interface}}
|
||||
{{/isEnum}}
|
||||
{{/model}}
|
||||
{{/models}}
|
||||
|
13
modules/openapi-generator/src/main/resources/JavaSpring/oneof_interface.mustache
vendored
Normal file
13
modules/openapi-generator/src/main/resources/JavaSpring/oneof_interface.mustache
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
{{>additionalModelTypeAnnotations}}
|
||||
{{#withXml}}
|
||||
{{>xmlAnnotation}}
|
||||
{{/withXml}}
|
||||
{{#discriminator}}
|
||||
{{>typeInfoAnnotation}}
|
||||
{{/discriminator}}
|
||||
{{>generatedAnnotation}}
|
||||
public interface {{classname}}{{#vendorExtensions.x-implements}}{{#-first}} extends {{{.}}}{{/-first}}{{^-first}}, {{{.}}}{{/-first}}{{/vendorExtensions.x-implements}} {
|
||||
{{#discriminator}}
|
||||
public {{propertyType}} {{propertyGetter}}();
|
||||
{{/discriminator}}
|
||||
}
|
@ -25,7 +25,7 @@
|
||||
{{#vendorExtensions.x-class-extra-annotation}}
|
||||
{{{vendorExtensions.x-class-extra-annotation}}}
|
||||
{{/vendorExtensions.x-class-extra-annotation}}
|
||||
public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}}{{^parent}}{{#hateoas}}extends RepresentationModel<{{classname}}> {{/hateoas}}{{/parent}} {{#vendorExtensions.x-implements}}{{#-first}}implements {{{.}}}{{/-first}}{{^-first}}, {{{.}}}{{/-first}}{{/vendorExtensions.x-implements}} {
|
||||
public class {{classname}}{{#parent}} extends {{{parent}}}{{/parent}}{{^parent}}{{#hateoas}} extends RepresentationModel<{{classname}}> {{/hateoas}}{{/parent}}{{#vendorExtensions.x-implements}}{{#-first}} implements {{{.}}}{{/-first}}{{^-first}}, {{{.}}}{{/-first}}{{/vendorExtensions.x-implements}} {
|
||||
{{#serializableModel}}
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
@ -1,11 +1,21 @@
|
||||
{{#jackson}}
|
||||
{{#discriminator.mappedModels}}
|
||||
{{#-first}}
|
||||
@JsonIgnoreProperties(
|
||||
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
|
||||
)
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "{{{discriminator.propertyBaseName}}}", visible = true)
|
||||
@JsonSubTypes({
|
||||
{{#discriminator.mappedModels}}
|
||||
@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}}"),
|
||||
{{/-first}}
|
||||
{{^vendorExtensions.x-discriminator-value}}
|
||||
@JsonSubTypes.Type(value = {{modelName}}.class, name = "{{{mappingName}}}"){{^-last}},{{/-last}}
|
||||
{{/vendorExtensions.x-discriminator-value}}
|
||||
{{#vendorExtensions.x-discriminator-value}}
|
||||
@JsonSubTypes.Type(value = {{modelName}}.class, name = "{{{vendorExtensions.x-discriminator-value}}}"){{^-last}},{{/-last}}
|
||||
{{/vendorExtensions.x-discriminator-value}}
|
||||
{{#-last}}
|
||||
})
|
||||
{{/-last}}
|
||||
{{/discriminator.mappedModels}}
|
||||
}){{/jackson}}
|
||||
{{/jackson}}
|
@ -947,6 +947,44 @@ public class SpringCodegenTest {
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void oneOf_5381() throws IOException {
|
||||
File output = Files.createTempDirectory("test").toFile().getCanonicalFile();
|
||||
output.deleteOnExit();
|
||||
String outputPath = output.getAbsolutePath().replace('\\', '/');
|
||||
OpenAPI openAPI = new OpenAPIParser()
|
||||
.readLocation("src/test/resources/3_0/issue_5381.yaml", null, new ParseOptions()).getOpenAPI();
|
||||
|
||||
SpringCodegen codegen = new SpringCodegen();
|
||||
codegen.setOutputDir(output.getAbsolutePath());
|
||||
codegen.additionalProperties().put(CXFServerFeatures.LOAD_TEST_DATA_FROM_FILE, "true");
|
||||
codegen.setUseOneOfInterfaces(true);
|
||||
|
||||
ClientOptInput input = new ClientOptInput();
|
||||
input.openAPI(openAPI);
|
||||
input.config(codegen);
|
||||
|
||||
DefaultGenerator generator = new DefaultGenerator();
|
||||
codegen.setHateoas(true);
|
||||
generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true");
|
||||
//generator.setGeneratorPropertyDefault(CodegenConstants.USE_ONEOF_DISCRIMINATOR_LOOKUP, "true");
|
||||
generator.setGeneratorPropertyDefault(CodegenConstants.LEGACY_DISCRIMINATOR_BEHAVIOR, "false");
|
||||
|
||||
codegen.setUseOneOfInterfaces(true);
|
||||
codegen.setLegacyDiscriminatorBehavior(false);
|
||||
|
||||
generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_TESTS, "false");
|
||||
generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_DOCS, "false");
|
||||
generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true");
|
||||
generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false");
|
||||
|
||||
generator.opts(input).generate();
|
||||
|
||||
assertFileContains(Paths.get(outputPath + "/src/main/java/org/openapitools/model/Foo.java"), "public class Foo implements FooRefOrValue");
|
||||
assertFileContains(Paths.get(outputPath + "/src/main/java/org/openapitools/model/FooRef.java"), "public class FooRef implements FooRefOrValue");
|
||||
assertFileContains(Paths.get(outputPath + "/src/main/java/org/openapitools/model/FooRefOrValue.java"), "public interface FooRefOrValue");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTypeMappings() {
|
||||
final SpringCodegen codegen = new SpringCodegen();
|
||||
|
134
modules/openapi-generator/src/test/resources/3_0/issue_5381.yaml
Normal file
134
modules/openapi-generator/src/test/resources/3_0/issue_5381.yaml
Normal file
@ -0,0 +1,134 @@
|
||||
openapi: 3.0.1
|
||||
info:
|
||||
title: ByRefOrValue
|
||||
description: >
|
||||
This tests for a oneOf interface representation
|
||||
version: 0.0.1
|
||||
servers:
|
||||
- url: "http://localhost:8080"
|
||||
tags:
|
||||
- name: Foo
|
||||
paths:
|
||||
/foo:
|
||||
get:
|
||||
tags:
|
||||
- Foo
|
||||
summary: GET all Foos
|
||||
operationId: getAllFoos
|
||||
responses:
|
||||
'200':
|
||||
$ref: '#/components/responses/200FooArray'
|
||||
post:
|
||||
tags:
|
||||
- Foo
|
||||
summary: Create a Foo
|
||||
operationId: createFoo
|
||||
requestBody:
|
||||
$ref: '#/components/requestBodies/Foo'
|
||||
responses:
|
||||
'201':
|
||||
$ref: '#/components/responses/201Foo'
|
||||
|
||||
components:
|
||||
schemas:
|
||||
Entity:
|
||||
type: object
|
||||
allOf:
|
||||
- "$ref": "#/components/schemas/Addressable"
|
||||
- "$ref": "#/components/schemas/Extensible"
|
||||
|
||||
EntityRef:
|
||||
description: Entity reference schema to be use for all entityRef class.
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
description: Name of the related entity.
|
||||
'@referredType':
|
||||
type: string
|
||||
description: The actual type of the target instance when needed for disambiguation.
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/Addressable'
|
||||
- "$ref": "#/components/schemas/Extensible"
|
||||
|
||||
|
||||
Addressable:
|
||||
type: object
|
||||
properties:
|
||||
href:
|
||||
type: string
|
||||
description: Hyperlink reference
|
||||
id:
|
||||
type: string
|
||||
description: unique identifier
|
||||
description: Base schema for adressable entities
|
||||
Extensible:
|
||||
type: object
|
||||
properties:
|
||||
"@schemaLocation":
|
||||
type: string
|
||||
description: A URI to a JSON-Schema file that defines additional attributes
|
||||
and relationships
|
||||
"@baseType":
|
||||
type: string
|
||||
description: When sub-classing, this defines the super-class
|
||||
"@type":
|
||||
type: string
|
||||
description: When sub-classing, this defines the sub-class Extensible name
|
||||
required:
|
||||
- '@type'
|
||||
|
||||
FooRefOrValue:
|
||||
type: object
|
||||
oneOf:
|
||||
- $ref: "#/components/schemas/Foo"
|
||||
- $ref: "#/components/schemas/FooRef"
|
||||
discriminator:
|
||||
propertyName: "@type"
|
||||
mapping:
|
||||
Foo: "#/components/schemas/Foo"
|
||||
FooRef: "#/components/schemas/FooRef"
|
||||
|
||||
Foo:
|
||||
type: object
|
||||
properties:
|
||||
fooPropA:
|
||||
type: string
|
||||
fooPropB:
|
||||
type: string
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/Entity'
|
||||
|
||||
FooRef:
|
||||
type: object
|
||||
properties:
|
||||
foorefPropA:
|
||||
type: string
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/EntityRef'
|
||||
|
||||
requestBodies:
|
||||
Foo:
|
||||
description: The Foo to be created
|
||||
content:
|
||||
application/json;charset=utf-8:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Foo'
|
||||
responses:
|
||||
'204':
|
||||
description: Deleted
|
||||
content: { }
|
||||
201Foo:
|
||||
description: Error
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/FooRefOrValue'
|
||||
200FooArray:
|
||||
description: Success
|
||||
content:
|
||||
application/json;charset=utf-8:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/FooRefOrValue'
|
@ -0,0 +1,178 @@
|
||||
openapi: 3.0.1
|
||||
info:
|
||||
title: ByRefOrValue
|
||||
description: >
|
||||
This tests for a oneOf interface representation
|
||||
version: 0.0.1
|
||||
servers:
|
||||
- url: "http://localhost:8080"
|
||||
tags:
|
||||
- name: Foo
|
||||
- name: Bar
|
||||
paths:
|
||||
/foo:
|
||||
get:
|
||||
tags:
|
||||
- Foo
|
||||
summary: GET all Foos
|
||||
operationId: getAllFoos
|
||||
responses:
|
||||
'200':
|
||||
$ref: '#/components/responses/200FooArray'
|
||||
post:
|
||||
tags:
|
||||
- Foo
|
||||
summary: Create a Foo
|
||||
operationId: createFoo
|
||||
requestBody:
|
||||
$ref: '#/components/requestBodies/Foo'
|
||||
responses:
|
||||
'201':
|
||||
$ref: '#/components/responses/201Foo'
|
||||
/bar:
|
||||
post:
|
||||
tags:
|
||||
- Bar
|
||||
summary: Create a Bar
|
||||
operationId: createBar
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
'application/json':
|
||||
schema:
|
||||
$ref: '#/components/schemas/Bar_Create'
|
||||
responses:
|
||||
200:
|
||||
description: Bar created
|
||||
content:
|
||||
'application/json':
|
||||
schema:
|
||||
$ref: '#/components/schemas/Bar'
|
||||
|
||||
components:
|
||||
schemas:
|
||||
Addressable:
|
||||
type: object
|
||||
properties:
|
||||
href:
|
||||
type: string
|
||||
description: Hyperlink reference
|
||||
id:
|
||||
type: string
|
||||
description: unique identifier
|
||||
description: Base schema for adressable entities
|
||||
Extensible:
|
||||
type: object
|
||||
properties:
|
||||
"@schemaLocation":
|
||||
type: string
|
||||
description: A URI to a JSON-Schema file that defines additional attributes
|
||||
and relationships
|
||||
"@baseType":
|
||||
type: string
|
||||
description: When sub-classing, this defines the super-class
|
||||
"@type":
|
||||
type: string
|
||||
description: When sub-classing, this defines the sub-class Extensible name
|
||||
required:
|
||||
- '@type'
|
||||
Entity:
|
||||
type: object
|
||||
discriminator:
|
||||
propertyName: '@type'
|
||||
allOf:
|
||||
- "$ref": "#/components/schemas/Addressable"
|
||||
- "$ref": "#/components/schemas/Extensible"
|
||||
EntityRef:
|
||||
type: object
|
||||
discriminator:
|
||||
propertyName: '@type'
|
||||
description: Entity reference schema to be use for all entityRef class.
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
description: Name of the related entity.
|
||||
'@referredType':
|
||||
type: string
|
||||
description: The actual type of the target instance when needed for disambiguation.
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/Addressable'
|
||||
- "$ref": "#/components/schemas/Extensible"
|
||||
FooRefOrValue:
|
||||
type: object
|
||||
oneOf:
|
||||
- $ref: "#/components/schemas/Foo"
|
||||
- $ref: "#/components/schemas/FooRef"
|
||||
discriminator:
|
||||
propertyName: "@type"
|
||||
Foo:
|
||||
type: object
|
||||
properties:
|
||||
fooPropA:
|
||||
type: string
|
||||
fooPropB:
|
||||
type: string
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/Entity'
|
||||
FooRef:
|
||||
type: object
|
||||
discriminator:
|
||||
propertyName: '@type'
|
||||
properties:
|
||||
foorefPropA:
|
||||
type: string
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/EntityRef'
|
||||
Bar_Create:
|
||||
type: object
|
||||
properties:
|
||||
barPropA:
|
||||
type: string
|
||||
fooPropB:
|
||||
type: string
|
||||
foo:
|
||||
$ref: '#/components/schemas/FooRefOrValue'
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/Entity'
|
||||
Bar:
|
||||
type: object
|
||||
required:
|
||||
- id
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
barPropA:
|
||||
type: string
|
||||
fooPropB:
|
||||
type: string
|
||||
foo:
|
||||
$ref: '#/components/schemas/FooRefOrValue'
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/Entity'
|
||||
|
||||
requestBodies:
|
||||
Foo:
|
||||
description: The Foo to be created
|
||||
content:
|
||||
application/json;charset=utf-8:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Foo'
|
||||
|
||||
responses:
|
||||
'204':
|
||||
description: Deleted
|
||||
content: { }
|
||||
201Foo:
|
||||
description: Error
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/FooRefOrValue'
|
||||
200FooArray:
|
||||
description: Success
|
||||
content:
|
||||
application/json;charset=utf-8:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/FooRefOrValue'
|
@ -7,6 +7,9 @@ import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.Cat;
|
||||
import org.openapitools.model.Dog;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
@ -29,8 +32,9 @@ import javax.annotation.Generated;
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat"),
|
||||
@JsonSubTypes.Type(value = Cat.class, name = "Cat"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import org.openapitools.model.BigCatAllOf;
|
||||
import org.openapitools.model.Cat;
|
||||
@ -21,6 +24,7 @@ import javax.annotation.Generated;
|
||||
* BigCat
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class BigCat extends Cat {
|
||||
|
||||
|
@ -2,9 +2,13 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.Animal;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.CatAllOf;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
@ -20,6 +24,15 @@ import javax.annotation.Generated;
|
||||
* Cat
|
||||
*/
|
||||
|
||||
@JsonIgnoreProperties(
|
||||
value = "className", // ignore manually set className, it will be automatically generated by Jackson during serialization
|
||||
allowSetters = true // allows the className to be set during deserialization
|
||||
)
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "className", visible = true)
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Cat extends Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.Animal;
|
||||
import org.openapitools.model.DogAllOf;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
@ -20,6 +23,7 @@ import javax.annotation.Generated;
|
||||
* Dog
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Dog extends Animal {
|
||||
|
||||
|
@ -0,0 +1,23 @@
|
||||
# OpenAPI Generator Ignore
|
||||
# Generated by openapi-generator https://github.com/openapitools/openapi-generator
|
||||
|
||||
# Use this file to prevent files from being overwritten by the generator.
|
||||
# The patterns follow closely to .gitignore or .dockerignore.
|
||||
|
||||
# As an example, the C# client generator defines ApiClient.cs.
|
||||
# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
|
||||
#ApiClient.cs
|
||||
|
||||
# You can match any string of characters against a directory, file or extension with a single asterisk (*):
|
||||
#foo/*/qux
|
||||
# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
|
||||
|
||||
# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
|
||||
#foo/**/qux
|
||||
# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
|
||||
|
||||
# You can also negate patterns with an exclamation (!).
|
||||
# For example, you can ignore all files in a docs folder with the file extension .md:
|
||||
#docs/*.md
|
||||
# Then explicitly reverse the ignore rule for a single file:
|
||||
#!docs/README.md
|
@ -0,0 +1,22 @@
|
||||
README.md
|
||||
pom.xml
|
||||
src/main/java/org/openapitools/OpenApiGeneratorApplication.java
|
||||
src/main/java/org/openapitools/RFC3339DateFormat.java
|
||||
src/main/java/org/openapitools/api/ApiUtil.java
|
||||
src/main/java/org/openapitools/api/BarApi.java
|
||||
src/main/java/org/openapitools/api/BarApiController.java
|
||||
src/main/java/org/openapitools/api/FooApi.java
|
||||
src/main/java/org/openapitools/api/FooApiController.java
|
||||
src/main/java/org/openapitools/configuration/HomeController.java
|
||||
src/main/java/org/openapitools/model/Addressable.java
|
||||
src/main/java/org/openapitools/model/Bar.java
|
||||
src/main/java/org/openapitools/model/BarCreate.java
|
||||
src/main/java/org/openapitools/model/Entity.java
|
||||
src/main/java/org/openapitools/model/EntityRef.java
|
||||
src/main/java/org/openapitools/model/Extensible.java
|
||||
src/main/java/org/openapitools/model/Foo.java
|
||||
src/main/java/org/openapitools/model/FooRef.java
|
||||
src/main/java/org/openapitools/model/FooRefOrValue.java
|
||||
src/main/resources/application.properties
|
||||
src/main/resources/openapi.yaml
|
||||
src/test/java/org/openapitools/OpenApiGeneratorApplicationTests.java
|
@ -0,0 +1 @@
|
||||
6.0.0-SNAPSHOT
|
21
samples/openapi3/server/petstore/spring-boot-oneof/README.md
Normal file
21
samples/openapi3/server/petstore/spring-boot-oneof/README.md
Normal file
@ -0,0 +1,21 @@
|
||||
# OpenAPI generated server
|
||||
|
||||
Spring Boot Server
|
||||
|
||||
## Overview
|
||||
This server was generated by the [OpenAPI Generator](https://openapi-generator.tech) project.
|
||||
By using the [OpenAPI-Spec](https://openapis.org), you can easily generate a server stub.
|
||||
This is an example of building a OpenAPI-enabled server in Java using the SpringBoot framework.
|
||||
|
||||
|
||||
The underlying library integrating OpenAPI to Spring Boot is [springdoc](https://springdoc.org).
|
||||
Springdoc will generate an OpenAPI v3 specification based on the generated Controller and Model classes.
|
||||
The specification is available to download using the following url:
|
||||
http://localhost:8080/v3/api-docs/
|
||||
|
||||
Start your server as a simple java application
|
||||
|
||||
You can view the api documentation in swagger-ui by pointing to
|
||||
http://localhost:8080/swagger-ui.html
|
||||
|
||||
Change default port value in application.properties
|
78
samples/openapi3/server/petstore/spring-boot-oneof/pom.xml
Normal file
78
samples/openapi3/server/petstore/spring-boot-oneof/pom.xml
Normal file
@ -0,0 +1,78 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.openapitools.openapi3</groupId>
|
||||
<artifactId>springboot-oneof</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<name>springboot-oneof</name>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<properties>
|
||||
<java.version>1.8</java.version>
|
||||
<maven.compiler.source>${java.version}</maven.compiler.source>
|
||||
<maven.compiler.target>${java.version}</maven.compiler.target>
|
||||
<springdoc.version>1.6.4</springdoc.version>
|
||||
<swagger-ui.version>4.4.1-1</swagger-ui.version>
|
||||
</properties>
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.6.3</version>
|
||||
</parent>
|
||||
<build>
|
||||
<sourceDirectory>src/main/java</sourceDirectory>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.data</groupId>
|
||||
<artifactId>spring-data-commons</artifactId>
|
||||
</dependency>
|
||||
<!--SpringDoc dependencies -->
|
||||
<dependency>
|
||||
<groupId>org.springdoc</groupId>
|
||||
<artifactId>springdoc-openapi-ui</artifactId>
|
||||
<version>${springdoc.version}</version>
|
||||
</dependency>
|
||||
<!-- @Nullable annotation -->
|
||||
<dependency>
|
||||
<groupId>com.google.code.findbugs</groupId>
|
||||
<artifactId>jsr305</artifactId>
|
||||
<version>3.0.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
||||
<artifactId>jackson-dataformat-yaml</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||
<artifactId>jackson-datatype-jsr310</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.openapitools</groupId>
|
||||
<artifactId>jackson-databind-nullable</artifactId>
|
||||
<version>0.2.2</version>
|
||||
</dependency>
|
||||
<!-- Bean Validation API support -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-validation</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
@ -0,0 +1,23 @@
|
||||
package org.openapitools;
|
||||
|
||||
import com.fasterxml.jackson.databind.Module;
|
||||
import org.openapitools.jackson.nullable.JsonNullableModule;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
|
||||
@SpringBootApplication
|
||||
@ComponentScan(basePackages = {"org.openapitools", "org.openapitools.api" , "org.openapitools.configuration"})
|
||||
public class OpenApiGeneratorApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(OpenApiGeneratorApplication.class, args);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public Module jsonNullableModule() {
|
||||
return new JsonNullableModule();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
package org.openapitools;
|
||||
|
||||
import com.fasterxml.jackson.databind.util.StdDateFormat;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.FieldPosition;
|
||||
import java.text.ParsePosition;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.TimeZone;
|
||||
|
||||
public class RFC3339DateFormat extends DateFormat {
|
||||
private static final long serialVersionUID = 1L;
|
||||
private static final TimeZone TIMEZONE_Z = TimeZone.getTimeZone("UTC");
|
||||
|
||||
private final StdDateFormat fmt = new StdDateFormat()
|
||||
.withTimeZone(TIMEZONE_Z)
|
||||
.withColonInTimeZone(true);
|
||||
|
||||
public RFC3339DateFormat() {
|
||||
this.calendar = new GregorianCalendar();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Date parse(String source, ParsePosition pos) {
|
||||
return fmt.parse(source, pos);
|
||||
}
|
||||
|
||||
@Override
|
||||
public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) {
|
||||
return fmt.format(date, toAppendTo, fieldPosition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object clone() {
|
||||
return this;
|
||||
}
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package org.openapitools.api;
|
||||
|
||||
import org.springframework.web.context.request.NativeWebRequest;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
|
||||
public class ApiUtil {
|
||||
public static void setExampleResponse(NativeWebRequest req, String contentType, String example) {
|
||||
try {
|
||||
HttpServletResponse res = req.getNativeResponse(HttpServletResponse.class);
|
||||
res.setCharacterEncoding("UTF-8");
|
||||
res.addHeader("Content-Type", contentType);
|
||||
res.getWriter().print(example);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,80 @@
|
||||
/**
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (6.0.0-SNAPSHOT).
|
||||
* https://openapi-generator.tech
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
package org.openapitools.api;
|
||||
|
||||
import org.openapitools.model.Bar;
|
||||
import org.openapitools.model.BarCreate;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Parameters;
|
||||
import io.swagger.v3.oas.annotations.media.Content;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.context.request.NativeWebRequest;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.*;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import javax.annotation.Generated;
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
@Validated
|
||||
@Tag(name = "bar", description = "the bar API")
|
||||
public interface BarApi {
|
||||
|
||||
default Optional<NativeWebRequest> getRequest() {
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
/**
|
||||
* POST /bar : Create a Bar
|
||||
*
|
||||
* @param barCreate (required)
|
||||
* @return Bar created (status code 200)
|
||||
*/
|
||||
@Operation(
|
||||
operationId = "createBar",
|
||||
summary = "Create a Bar",
|
||||
tags = { "Bar" },
|
||||
responses = {
|
||||
@ApiResponse(responseCode = "200", description = "Bar created", content = {
|
||||
@Content(mediaType = "application/json", schema = @Schema(implementation = Bar.class))
|
||||
})
|
||||
}
|
||||
)
|
||||
@RequestMapping(
|
||||
method = RequestMethod.POST,
|
||||
value = "/bar",
|
||||
produces = { "application/json" },
|
||||
consumes = { "application/json" }
|
||||
)
|
||||
default ResponseEntity<Bar> createBar(
|
||||
@Parameter(name = "BarCreate", description = "", required = true) @Valid @RequestBody BarCreate barCreate
|
||||
) {
|
||||
getRequest().ifPresent(request -> {
|
||||
for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
|
||||
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
|
||||
String exampleString = "{ \"id\" : \"id\", \"fooPropB\" : \"fooPropB\", \"barPropA\" : \"barPropA\" }";
|
||||
ApiUtil.setExampleResponse(request, "application/json", exampleString);
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
package org.openapitools.api;
|
||||
|
||||
import org.openapitools.model.Bar;
|
||||
import org.openapitools.model.BarCreate;
|
||||
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestHeader;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RequestPart;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.context.request.NativeWebRequest;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.Valid;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import javax.annotation.Generated;
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
@Controller
|
||||
@RequestMapping("${openapi.byRefOrValue.base-path:}")
|
||||
public class BarApiController implements BarApi {
|
||||
|
||||
private final NativeWebRequest request;
|
||||
|
||||
@Autowired
|
||||
public BarApiController(NativeWebRequest request) {
|
||||
this.request = request;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<NativeWebRequest> getRequest() {
|
||||
return Optional.ofNullable(request);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,117 @@
|
||||
/**
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (6.0.0-SNAPSHOT).
|
||||
* https://openapi-generator.tech
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
package org.openapitools.api;
|
||||
|
||||
import org.openapitools.model.Foo;
|
||||
import org.openapitools.model.FooRefOrValue;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Parameters;
|
||||
import io.swagger.v3.oas.annotations.media.Content;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.context.request.NativeWebRequest;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.*;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import javax.annotation.Generated;
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
@Validated
|
||||
@Tag(name = "foo", description = "the foo API")
|
||||
public interface FooApi {
|
||||
|
||||
default Optional<NativeWebRequest> getRequest() {
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
/**
|
||||
* POST /foo : Create a Foo
|
||||
*
|
||||
* @param foo The Foo to be created (optional)
|
||||
* @return Error (status code 201)
|
||||
*/
|
||||
@Operation(
|
||||
operationId = "createFoo",
|
||||
summary = "Create a Foo",
|
||||
tags = { "Foo" },
|
||||
responses = {
|
||||
@ApiResponse(responseCode = "201", description = "Error", content = {
|
||||
@Content(mediaType = "application/json", schema = @Schema(implementation = FooRefOrValue.class))
|
||||
})
|
||||
}
|
||||
)
|
||||
@RequestMapping(
|
||||
method = RequestMethod.POST,
|
||||
value = "/foo",
|
||||
produces = { "application/json" },
|
||||
consumes = { "application/json;charset=utf-8" }
|
||||
)
|
||||
default ResponseEntity<FooRefOrValue> createFoo(
|
||||
@Parameter(name = "Foo", description = "The Foo to be created") @Valid @RequestBody(required = false) Foo foo
|
||||
) {
|
||||
getRequest().ifPresent(request -> {
|
||||
for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
|
||||
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
|
||||
String exampleString = "null";
|
||||
ApiUtil.setExampleResponse(request, "application/json", exampleString);
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* GET /foo : GET all Foos
|
||||
*
|
||||
* @return Success (status code 200)
|
||||
*/
|
||||
@Operation(
|
||||
operationId = "getAllFoos",
|
||||
summary = "GET all Foos",
|
||||
tags = { "Foo" },
|
||||
responses = {
|
||||
@ApiResponse(responseCode = "200", description = "Success", content = {
|
||||
@Content(mediaType = "application/json;charset=utf-8", schema = @Schema(implementation = FooRefOrValue.class))
|
||||
})
|
||||
}
|
||||
)
|
||||
@RequestMapping(
|
||||
method = RequestMethod.GET,
|
||||
value = "/foo",
|
||||
produces = { "application/json;charset=utf-8" }
|
||||
)
|
||||
default ResponseEntity<List<FooRefOrValue>> getAllFoos(
|
||||
|
||||
) {
|
||||
getRequest().ifPresent(request -> {
|
||||
for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
|
||||
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json;charset=utf-8"))) {
|
||||
String exampleString = "null";
|
||||
ApiUtil.setExampleResponse(request, "application/json;charset=utf-8", exampleString);
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
package org.openapitools.api;
|
||||
|
||||
import org.openapitools.model.Foo;
|
||||
import org.openapitools.model.FooRefOrValue;
|
||||
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestHeader;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RequestPart;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.context.request.NativeWebRequest;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.Valid;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import javax.annotation.Generated;
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
@Controller
|
||||
@RequestMapping("${openapi.byRefOrValue.base-path:}")
|
||||
public class FooApiController implements FooApi {
|
||||
|
||||
private final NativeWebRequest request;
|
||||
|
||||
@Autowired
|
||||
public FooApiController(NativeWebRequest request) {
|
||||
this.request = request;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<NativeWebRequest> getRequest() {
|
||||
return Optional.ofNullable(request);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package org.openapitools.configuration;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
||||
/**
|
||||
* Home redirection to OpenAPI api documentation
|
||||
*/
|
||||
@Controller
|
||||
public class HomeController {
|
||||
|
||||
@RequestMapping("/")
|
||||
public String index() {
|
||||
return "redirect:swagger-ui.html";
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,108 @@
|
||||
package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
|
||||
import java.util.*;
|
||||
import javax.annotation.Generated;
|
||||
|
||||
/**
|
||||
* Base schema for adressable entities
|
||||
*/
|
||||
|
||||
@Schema(name = "Addressable", description = "Base schema for adressable entities")
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Addressable {
|
||||
|
||||
@JsonProperty("href")
|
||||
private String href;
|
||||
|
||||
@JsonProperty("id")
|
||||
private String id;
|
||||
|
||||
public Addressable href(String href) {
|
||||
this.href = href;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Hyperlink reference
|
||||
* @return href
|
||||
*/
|
||||
|
||||
@Schema(name = "href", description = "Hyperlink reference", required = false)
|
||||
public String getHref() {
|
||||
return href;
|
||||
}
|
||||
|
||||
public void setHref(String href) {
|
||||
this.href = href;
|
||||
}
|
||||
|
||||
public Addressable id(String id) {
|
||||
this.id = id;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* unique identifier
|
||||
* @return id
|
||||
*/
|
||||
|
||||
@Schema(name = "id", description = "unique identifier", required = false)
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
Addressable addressable = (Addressable) o;
|
||||
return Objects.equals(this.href, addressable.href) &&
|
||||
Objects.equals(this.id, addressable.id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(href, id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("class Addressable {\n");
|
||||
sb.append(" href: ").append(toIndentedString(href)).append("\n");
|
||||
sb.append(" id: ").append(toIndentedString(id)).append("\n");
|
||||
sb.append("}");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the given object to string with each line indented by 4 spaces
|
||||
* (except the first line).
|
||||
*/
|
||||
private String toIndentedString(Object o) {
|
||||
if (o == null) {
|
||||
return "null";
|
||||
}
|
||||
return o.toString().replace("\n", "\n ");
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,163 @@
|
||||
package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.Entity;
|
||||
import org.openapitools.model.FooRefOrValue;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
|
||||
import java.util.*;
|
||||
import javax.annotation.Generated;
|
||||
|
||||
/**
|
||||
* Bar
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Bar extends Entity {
|
||||
|
||||
@JsonProperty("id")
|
||||
private String id;
|
||||
|
||||
@JsonProperty("barPropA")
|
||||
private String barPropA;
|
||||
|
||||
@JsonProperty("fooPropB")
|
||||
private String fooPropB;
|
||||
|
||||
@JsonProperty("foo")
|
||||
private FooRefOrValue foo;
|
||||
|
||||
public Bar id(String id) {
|
||||
this.id = id;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get id
|
||||
* @return id
|
||||
*/
|
||||
@NotNull
|
||||
@Schema(name = "id", required = true)
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Bar barPropA(String barPropA) {
|
||||
this.barPropA = barPropA;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get barPropA
|
||||
* @return barPropA
|
||||
*/
|
||||
|
||||
@Schema(name = "barPropA", required = false)
|
||||
public String getBarPropA() {
|
||||
return barPropA;
|
||||
}
|
||||
|
||||
public void setBarPropA(String barPropA) {
|
||||
this.barPropA = barPropA;
|
||||
}
|
||||
|
||||
public Bar fooPropB(String fooPropB) {
|
||||
this.fooPropB = fooPropB;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get fooPropB
|
||||
* @return fooPropB
|
||||
*/
|
||||
|
||||
@Schema(name = "fooPropB", required = false)
|
||||
public String getFooPropB() {
|
||||
return fooPropB;
|
||||
}
|
||||
|
||||
public void setFooPropB(String fooPropB) {
|
||||
this.fooPropB = fooPropB;
|
||||
}
|
||||
|
||||
public Bar foo(FooRefOrValue foo) {
|
||||
this.foo = foo;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get foo
|
||||
* @return foo
|
||||
*/
|
||||
@Valid
|
||||
@Schema(name = "foo", required = false)
|
||||
public FooRefOrValue getFoo() {
|
||||
return foo;
|
||||
}
|
||||
|
||||
public void setFoo(FooRefOrValue foo) {
|
||||
this.foo = foo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
Bar bar = (Bar) o;
|
||||
return Objects.equals(this.id, bar.id) &&
|
||||
Objects.equals(this.barPropA, bar.barPropA) &&
|
||||
Objects.equals(this.fooPropB, bar.fooPropB) &&
|
||||
Objects.equals(this.foo, bar.foo) &&
|
||||
super.equals(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(id, barPropA, fooPropB, foo, super.hashCode());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("class Bar {\n");
|
||||
sb.append(" ").append(toIndentedString(super.toString())).append("\n");
|
||||
sb.append(" id: ").append(toIndentedString(id)).append("\n");
|
||||
sb.append(" barPropA: ").append(toIndentedString(barPropA)).append("\n");
|
||||
sb.append(" fooPropB: ").append(toIndentedString(fooPropB)).append("\n");
|
||||
sb.append(" foo: ").append(toIndentedString(foo)).append("\n");
|
||||
sb.append("}");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the given object to string with each line indented by 4 spaces
|
||||
* (except the first line).
|
||||
*/
|
||||
private String toIndentedString(Object o) {
|
||||
if (o == null) {
|
||||
return "null";
|
||||
}
|
||||
return o.toString().replace("\n", "\n ");
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,141 @@
|
||||
package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeName;
|
||||
import org.openapitools.model.Entity;
|
||||
import org.openapitools.model.FooRefOrValue;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
|
||||
import java.util.*;
|
||||
import javax.annotation.Generated;
|
||||
|
||||
/**
|
||||
* BarCreate
|
||||
*/
|
||||
|
||||
|
||||
@JsonTypeName("Bar_Create")
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class BarCreate extends Entity {
|
||||
|
||||
@JsonProperty("barPropA")
|
||||
private String barPropA;
|
||||
|
||||
@JsonProperty("fooPropB")
|
||||
private String fooPropB;
|
||||
|
||||
@JsonProperty("foo")
|
||||
private FooRefOrValue foo;
|
||||
|
||||
public BarCreate barPropA(String barPropA) {
|
||||
this.barPropA = barPropA;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get barPropA
|
||||
* @return barPropA
|
||||
*/
|
||||
|
||||
@Schema(name = "barPropA", required = false)
|
||||
public String getBarPropA() {
|
||||
return barPropA;
|
||||
}
|
||||
|
||||
public void setBarPropA(String barPropA) {
|
||||
this.barPropA = barPropA;
|
||||
}
|
||||
|
||||
public BarCreate fooPropB(String fooPropB) {
|
||||
this.fooPropB = fooPropB;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get fooPropB
|
||||
* @return fooPropB
|
||||
*/
|
||||
|
||||
@Schema(name = "fooPropB", required = false)
|
||||
public String getFooPropB() {
|
||||
return fooPropB;
|
||||
}
|
||||
|
||||
public void setFooPropB(String fooPropB) {
|
||||
this.fooPropB = fooPropB;
|
||||
}
|
||||
|
||||
public BarCreate foo(FooRefOrValue foo) {
|
||||
this.foo = foo;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get foo
|
||||
* @return foo
|
||||
*/
|
||||
@Valid
|
||||
@Schema(name = "foo", required = false)
|
||||
public FooRefOrValue getFoo() {
|
||||
return foo;
|
||||
}
|
||||
|
||||
public void setFoo(FooRefOrValue foo) {
|
||||
this.foo = foo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
BarCreate barCreate = (BarCreate) o;
|
||||
return Objects.equals(this.barPropA, barCreate.barPropA) &&
|
||||
Objects.equals(this.fooPropB, barCreate.fooPropB) &&
|
||||
Objects.equals(this.foo, barCreate.foo) &&
|
||||
super.equals(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(barPropA, fooPropB, foo, super.hashCode());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("class BarCreate {\n");
|
||||
sb.append(" ").append(toIndentedString(super.toString())).append("\n");
|
||||
sb.append(" barPropA: ").append(toIndentedString(barPropA)).append("\n");
|
||||
sb.append(" fooPropB: ").append(toIndentedString(fooPropB)).append("\n");
|
||||
sb.append(" foo: ").append(toIndentedString(foo)).append("\n");
|
||||
sb.append("}");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the given object to string with each line indented by 4 spaces
|
||||
* (except the first line).
|
||||
*/
|
||||
private String toIndentedString(Object o) {
|
||||
if (o == null) {
|
||||
return "null";
|
||||
}
|
||||
return o.toString().replace("\n", "\n ");
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,198 @@
|
||||
package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.Addressable;
|
||||
import org.openapitools.model.Bar;
|
||||
import org.openapitools.model.BarCreate;
|
||||
import org.openapitools.model.Extensible;
|
||||
import org.openapitools.model.Foo;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
|
||||
import java.util.*;
|
||||
import javax.annotation.Generated;
|
||||
|
||||
/**
|
||||
* Entity
|
||||
*/
|
||||
|
||||
@JsonIgnoreProperties(
|
||||
value = "@type", // ignore manually set @type, it will be automatically generated by Jackson during serialization
|
||||
allowSetters = true // allows the @type to be set during deserialization
|
||||
)
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "@type", visible = true)
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = Bar.class, name = "Bar"),
|
||||
@JsonSubTypes.Type(value = BarCreate.class, name = "Bar_Create"),
|
||||
@JsonSubTypes.Type(value = Foo.class, name = "Foo")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Entity {
|
||||
|
||||
@JsonProperty("href")
|
||||
private String href;
|
||||
|
||||
@JsonProperty("id")
|
||||
private String id;
|
||||
|
||||
@JsonProperty("@schemaLocation")
|
||||
private String atSchemaLocation;
|
||||
|
||||
@JsonProperty("@baseType")
|
||||
private String atBaseType;
|
||||
|
||||
@JsonProperty("@type")
|
||||
private String atType;
|
||||
|
||||
public Entity href(String href) {
|
||||
this.href = href;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Hyperlink reference
|
||||
* @return href
|
||||
*/
|
||||
|
||||
@Schema(name = "href", description = "Hyperlink reference", required = false)
|
||||
public String getHref() {
|
||||
return href;
|
||||
}
|
||||
|
||||
public void setHref(String href) {
|
||||
this.href = href;
|
||||
}
|
||||
|
||||
public Entity id(String id) {
|
||||
this.id = id;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* unique identifier
|
||||
* @return id
|
||||
*/
|
||||
|
||||
@Schema(name = "id", description = "unique identifier", required = false)
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Entity atSchemaLocation(String atSchemaLocation) {
|
||||
this.atSchemaLocation = atSchemaLocation;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* A URI to a JSON-Schema file that defines additional attributes and relationships
|
||||
* @return atSchemaLocation
|
||||
*/
|
||||
|
||||
@Schema(name = "@schemaLocation", description = "A URI to a JSON-Schema file that defines additional attributes and relationships", required = false)
|
||||
public String getAtSchemaLocation() {
|
||||
return atSchemaLocation;
|
||||
}
|
||||
|
||||
public void setAtSchemaLocation(String atSchemaLocation) {
|
||||
this.atSchemaLocation = atSchemaLocation;
|
||||
}
|
||||
|
||||
public Entity atBaseType(String atBaseType) {
|
||||
this.atBaseType = atBaseType;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* When sub-classing, this defines the super-class
|
||||
* @return atBaseType
|
||||
*/
|
||||
|
||||
@Schema(name = "@baseType", description = "When sub-classing, this defines the super-class", required = false)
|
||||
public String getAtBaseType() {
|
||||
return atBaseType;
|
||||
}
|
||||
|
||||
public void setAtBaseType(String atBaseType) {
|
||||
this.atBaseType = atBaseType;
|
||||
}
|
||||
|
||||
public Entity atType(String atType) {
|
||||
this.atType = atType;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* When sub-classing, this defines the sub-class Extensible name
|
||||
* @return atType
|
||||
*/
|
||||
@NotNull
|
||||
@Schema(name = "@type", description = "When sub-classing, this defines the sub-class Extensible name", required = true)
|
||||
public String getAtType() {
|
||||
return atType;
|
||||
}
|
||||
|
||||
public void setAtType(String atType) {
|
||||
this.atType = atType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
Entity entity = (Entity) o;
|
||||
return Objects.equals(this.href, entity.href) &&
|
||||
Objects.equals(this.id, entity.id) &&
|
||||
Objects.equals(this.atSchemaLocation, entity.atSchemaLocation) &&
|
||||
Objects.equals(this.atBaseType, entity.atBaseType) &&
|
||||
Objects.equals(this.atType, entity.atType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(href, id, atSchemaLocation, atBaseType, atType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("class Entity {\n");
|
||||
sb.append(" href: ").append(toIndentedString(href)).append("\n");
|
||||
sb.append(" id: ").append(toIndentedString(id)).append("\n");
|
||||
sb.append(" atSchemaLocation: ").append(toIndentedString(atSchemaLocation)).append("\n");
|
||||
sb.append(" atBaseType: ").append(toIndentedString(atBaseType)).append("\n");
|
||||
sb.append(" atType: ").append(toIndentedString(atType)).append("\n");
|
||||
sb.append("}");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the given object to string with each line indented by 4 spaces
|
||||
* (except the first line).
|
||||
*/
|
||||
private String toIndentedString(Object o) {
|
||||
if (o == null) {
|
||||
return "null";
|
||||
}
|
||||
return o.toString().replace("\n", "\n ");
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,243 @@
|
||||
package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.Addressable;
|
||||
import org.openapitools.model.Extensible;
|
||||
import org.openapitools.model.FooRef;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
|
||||
import java.util.*;
|
||||
import javax.annotation.Generated;
|
||||
|
||||
/**
|
||||
* Entity reference schema to be use for all entityRef class.
|
||||
*/
|
||||
|
||||
@Schema(name = "EntityRef", description = "Entity reference schema to be use for all entityRef class.")
|
||||
@JsonIgnoreProperties(
|
||||
value = "@type", // ignore manually set @type, it will be automatically generated by Jackson during serialization
|
||||
allowSetters = true // allows the @type to be set during deserialization
|
||||
)
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "@type", visible = true)
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = FooRef.class, name = "FooRef")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class EntityRef {
|
||||
|
||||
@JsonProperty("name")
|
||||
private String name;
|
||||
|
||||
@JsonProperty("@referredType")
|
||||
private String atReferredType;
|
||||
|
||||
@JsonProperty("href")
|
||||
private String href;
|
||||
|
||||
@JsonProperty("id")
|
||||
private String id;
|
||||
|
||||
@JsonProperty("@schemaLocation")
|
||||
private String atSchemaLocation;
|
||||
|
||||
@JsonProperty("@baseType")
|
||||
private String atBaseType;
|
||||
|
||||
@JsonProperty("@type")
|
||||
private String atType;
|
||||
|
||||
public EntityRef name(String name) {
|
||||
this.name = name;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Name of the related entity.
|
||||
* @return name
|
||||
*/
|
||||
|
||||
@Schema(name = "name", description = "Name of the related entity.", required = false)
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public EntityRef atReferredType(String atReferredType) {
|
||||
this.atReferredType = atReferredType;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* The actual type of the target instance when needed for disambiguation.
|
||||
* @return atReferredType
|
||||
*/
|
||||
|
||||
@Schema(name = "@referredType", description = "The actual type of the target instance when needed for disambiguation.", required = false)
|
||||
public String getAtReferredType() {
|
||||
return atReferredType;
|
||||
}
|
||||
|
||||
public void setAtReferredType(String atReferredType) {
|
||||
this.atReferredType = atReferredType;
|
||||
}
|
||||
|
||||
public EntityRef href(String href) {
|
||||
this.href = href;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Hyperlink reference
|
||||
* @return href
|
||||
*/
|
||||
|
||||
@Schema(name = "href", description = "Hyperlink reference", required = false)
|
||||
public String getHref() {
|
||||
return href;
|
||||
}
|
||||
|
||||
public void setHref(String href) {
|
||||
this.href = href;
|
||||
}
|
||||
|
||||
public EntityRef id(String id) {
|
||||
this.id = id;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* unique identifier
|
||||
* @return id
|
||||
*/
|
||||
|
||||
@Schema(name = "id", description = "unique identifier", required = false)
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public EntityRef atSchemaLocation(String atSchemaLocation) {
|
||||
this.atSchemaLocation = atSchemaLocation;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* A URI to a JSON-Schema file that defines additional attributes and relationships
|
||||
* @return atSchemaLocation
|
||||
*/
|
||||
|
||||
@Schema(name = "@schemaLocation", description = "A URI to a JSON-Schema file that defines additional attributes and relationships", required = false)
|
||||
public String getAtSchemaLocation() {
|
||||
return atSchemaLocation;
|
||||
}
|
||||
|
||||
public void setAtSchemaLocation(String atSchemaLocation) {
|
||||
this.atSchemaLocation = atSchemaLocation;
|
||||
}
|
||||
|
||||
public EntityRef atBaseType(String atBaseType) {
|
||||
this.atBaseType = atBaseType;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* When sub-classing, this defines the super-class
|
||||
* @return atBaseType
|
||||
*/
|
||||
|
||||
@Schema(name = "@baseType", description = "When sub-classing, this defines the super-class", required = false)
|
||||
public String getAtBaseType() {
|
||||
return atBaseType;
|
||||
}
|
||||
|
||||
public void setAtBaseType(String atBaseType) {
|
||||
this.atBaseType = atBaseType;
|
||||
}
|
||||
|
||||
public EntityRef atType(String atType) {
|
||||
this.atType = atType;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* When sub-classing, this defines the sub-class Extensible name
|
||||
* @return atType
|
||||
*/
|
||||
@NotNull
|
||||
@Schema(name = "@type", description = "When sub-classing, this defines the sub-class Extensible name", required = true)
|
||||
public String getAtType() {
|
||||
return atType;
|
||||
}
|
||||
|
||||
public void setAtType(String atType) {
|
||||
this.atType = atType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
EntityRef entityRef = (EntityRef) o;
|
||||
return Objects.equals(this.name, entityRef.name) &&
|
||||
Objects.equals(this.atReferredType, entityRef.atReferredType) &&
|
||||
Objects.equals(this.href, entityRef.href) &&
|
||||
Objects.equals(this.id, entityRef.id) &&
|
||||
Objects.equals(this.atSchemaLocation, entityRef.atSchemaLocation) &&
|
||||
Objects.equals(this.atBaseType, entityRef.atBaseType) &&
|
||||
Objects.equals(this.atType, entityRef.atType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(name, atReferredType, href, id, atSchemaLocation, atBaseType, atType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("class EntityRef {\n");
|
||||
sb.append(" name: ").append(toIndentedString(name)).append("\n");
|
||||
sb.append(" atReferredType: ").append(toIndentedString(atReferredType)).append("\n");
|
||||
sb.append(" href: ").append(toIndentedString(href)).append("\n");
|
||||
sb.append(" id: ").append(toIndentedString(id)).append("\n");
|
||||
sb.append(" atSchemaLocation: ").append(toIndentedString(atSchemaLocation)).append("\n");
|
||||
sb.append(" atBaseType: ").append(toIndentedString(atBaseType)).append("\n");
|
||||
sb.append(" atType: ").append(toIndentedString(atType)).append("\n");
|
||||
sb.append("}");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the given object to string with each line indented by 4 spaces
|
||||
* (except the first line).
|
||||
*/
|
||||
private String toIndentedString(Object o) {
|
||||
if (o == null) {
|
||||
return "null";
|
||||
}
|
||||
return o.toString().replace("\n", "\n ");
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,131 @@
|
||||
package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
|
||||
import java.util.*;
|
||||
import javax.annotation.Generated;
|
||||
|
||||
/**
|
||||
* Extensible
|
||||
*/
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Extensible {
|
||||
|
||||
@JsonProperty("@schemaLocation")
|
||||
private String atSchemaLocation;
|
||||
|
||||
@JsonProperty("@baseType")
|
||||
private String atBaseType;
|
||||
|
||||
@JsonProperty("@type")
|
||||
private String atType;
|
||||
|
||||
public Extensible atSchemaLocation(String atSchemaLocation) {
|
||||
this.atSchemaLocation = atSchemaLocation;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* A URI to a JSON-Schema file that defines additional attributes and relationships
|
||||
* @return atSchemaLocation
|
||||
*/
|
||||
|
||||
@Schema(name = "@schemaLocation", description = "A URI to a JSON-Schema file that defines additional attributes and relationships", required = false)
|
||||
public String getAtSchemaLocation() {
|
||||
return atSchemaLocation;
|
||||
}
|
||||
|
||||
public void setAtSchemaLocation(String atSchemaLocation) {
|
||||
this.atSchemaLocation = atSchemaLocation;
|
||||
}
|
||||
|
||||
public Extensible atBaseType(String atBaseType) {
|
||||
this.atBaseType = atBaseType;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* When sub-classing, this defines the super-class
|
||||
* @return atBaseType
|
||||
*/
|
||||
|
||||
@Schema(name = "@baseType", description = "When sub-classing, this defines the super-class", required = false)
|
||||
public String getAtBaseType() {
|
||||
return atBaseType;
|
||||
}
|
||||
|
||||
public void setAtBaseType(String atBaseType) {
|
||||
this.atBaseType = atBaseType;
|
||||
}
|
||||
|
||||
public Extensible atType(String atType) {
|
||||
this.atType = atType;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* When sub-classing, this defines the sub-class Extensible name
|
||||
* @return atType
|
||||
*/
|
||||
@NotNull
|
||||
@Schema(name = "@type", description = "When sub-classing, this defines the sub-class Extensible name", required = true)
|
||||
public String getAtType() {
|
||||
return atType;
|
||||
}
|
||||
|
||||
public void setAtType(String atType) {
|
||||
this.atType = atType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
Extensible extensible = (Extensible) o;
|
||||
return Objects.equals(this.atSchemaLocation, extensible.atSchemaLocation) &&
|
||||
Objects.equals(this.atBaseType, extensible.atBaseType) &&
|
||||
Objects.equals(this.atType, extensible.atType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(atSchemaLocation, atBaseType, atType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("class Extensible {\n");
|
||||
sb.append(" atSchemaLocation: ").append(toIndentedString(atSchemaLocation)).append("\n");
|
||||
sb.append(" atBaseType: ").append(toIndentedString(atBaseType)).append("\n");
|
||||
sb.append(" atType: ").append(toIndentedString(atType)).append("\n");
|
||||
sb.append("}");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the given object to string with each line indented by 4 spaces
|
||||
* (except the first line).
|
||||
*/
|
||||
private String toIndentedString(Object o) {
|
||||
if (o == null) {
|
||||
return "null";
|
||||
}
|
||||
return o.toString().replace("\n", "\n ");
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,234 @@
|
||||
package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.Entity;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
|
||||
import java.util.*;
|
||||
import javax.annotation.Generated;
|
||||
|
||||
/**
|
||||
* Foo
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Foo extends Entity implements FooRefOrValue {
|
||||
|
||||
@JsonProperty("fooPropA")
|
||||
private String fooPropA;
|
||||
|
||||
@JsonProperty("fooPropB")
|
||||
private String fooPropB;
|
||||
|
||||
@JsonProperty("href")
|
||||
private String href;
|
||||
|
||||
@JsonProperty("id")
|
||||
private String id;
|
||||
|
||||
@JsonProperty("@schemaLocation")
|
||||
private String atSchemaLocation;
|
||||
|
||||
@JsonProperty("@baseType")
|
||||
private String atBaseType;
|
||||
|
||||
@JsonProperty("@type")
|
||||
private String atType;
|
||||
|
||||
public Foo fooPropA(String fooPropA) {
|
||||
this.fooPropA = fooPropA;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get fooPropA
|
||||
* @return fooPropA
|
||||
*/
|
||||
|
||||
@Schema(name = "fooPropA", required = false)
|
||||
public String getFooPropA() {
|
||||
return fooPropA;
|
||||
}
|
||||
|
||||
public void setFooPropA(String fooPropA) {
|
||||
this.fooPropA = fooPropA;
|
||||
}
|
||||
|
||||
public Foo fooPropB(String fooPropB) {
|
||||
this.fooPropB = fooPropB;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get fooPropB
|
||||
* @return fooPropB
|
||||
*/
|
||||
|
||||
@Schema(name = "fooPropB", required = false)
|
||||
public String getFooPropB() {
|
||||
return fooPropB;
|
||||
}
|
||||
|
||||
public void setFooPropB(String fooPropB) {
|
||||
this.fooPropB = fooPropB;
|
||||
}
|
||||
|
||||
public Foo href(String href) {
|
||||
this.href = href;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Hyperlink reference
|
||||
* @return href
|
||||
*/
|
||||
|
||||
@Schema(name = "href", description = "Hyperlink reference", required = false)
|
||||
public String getHref() {
|
||||
return href;
|
||||
}
|
||||
|
||||
public void setHref(String href) {
|
||||
this.href = href;
|
||||
}
|
||||
|
||||
public Foo id(String id) {
|
||||
this.id = id;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* unique identifier
|
||||
* @return id
|
||||
*/
|
||||
|
||||
@Schema(name = "id", description = "unique identifier", required = false)
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Foo atSchemaLocation(String atSchemaLocation) {
|
||||
this.atSchemaLocation = atSchemaLocation;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* A URI to a JSON-Schema file that defines additional attributes and relationships
|
||||
* @return atSchemaLocation
|
||||
*/
|
||||
|
||||
@Schema(name = "@schemaLocation", description = "A URI to a JSON-Schema file that defines additional attributes and relationships", required = false)
|
||||
public String getAtSchemaLocation() {
|
||||
return atSchemaLocation;
|
||||
}
|
||||
|
||||
public void setAtSchemaLocation(String atSchemaLocation) {
|
||||
this.atSchemaLocation = atSchemaLocation;
|
||||
}
|
||||
|
||||
public Foo atBaseType(String atBaseType) {
|
||||
this.atBaseType = atBaseType;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* When sub-classing, this defines the super-class
|
||||
* @return atBaseType
|
||||
*/
|
||||
|
||||
@Schema(name = "@baseType", description = "When sub-classing, this defines the super-class", required = false)
|
||||
public String getAtBaseType() {
|
||||
return atBaseType;
|
||||
}
|
||||
|
||||
public void setAtBaseType(String atBaseType) {
|
||||
this.atBaseType = atBaseType;
|
||||
}
|
||||
|
||||
public Foo atType(String atType) {
|
||||
this.atType = atType;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* When sub-classing, this defines the sub-class Extensible name
|
||||
* @return atType
|
||||
*/
|
||||
@NotNull
|
||||
@Schema(name = "@type", description = "When sub-classing, this defines the sub-class Extensible name", required = true)
|
||||
public String getAtType() {
|
||||
return atType;
|
||||
}
|
||||
|
||||
public void setAtType(String atType) {
|
||||
this.atType = atType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
Foo foo = (Foo) o;
|
||||
return Objects.equals(this.fooPropA, foo.fooPropA) &&
|
||||
Objects.equals(this.fooPropB, foo.fooPropB) &&
|
||||
Objects.equals(this.href, foo.href) &&
|
||||
Objects.equals(this.id, foo.id) &&
|
||||
Objects.equals(this.atSchemaLocation, foo.atSchemaLocation) &&
|
||||
Objects.equals(this.atBaseType, foo.atBaseType) &&
|
||||
Objects.equals(this.atType, foo.atType) &&
|
||||
super.equals(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(fooPropA, fooPropB, href, id, atSchemaLocation, atBaseType, atType, super.hashCode());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("class Foo {\n");
|
||||
sb.append(" ").append(toIndentedString(super.toString())).append("\n");
|
||||
sb.append(" fooPropA: ").append(toIndentedString(fooPropA)).append("\n");
|
||||
sb.append(" fooPropB: ").append(toIndentedString(fooPropB)).append("\n");
|
||||
sb.append(" href: ").append(toIndentedString(href)).append("\n");
|
||||
sb.append(" id: ").append(toIndentedString(id)).append("\n");
|
||||
sb.append(" atSchemaLocation: ").append(toIndentedString(atSchemaLocation)).append("\n");
|
||||
sb.append(" atBaseType: ").append(toIndentedString(atBaseType)).append("\n");
|
||||
sb.append(" atType: ").append(toIndentedString(atType)).append("\n");
|
||||
sb.append("}");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the given object to string with each line indented by 4 spaces
|
||||
* (except the first line).
|
||||
*/
|
||||
private String toIndentedString(Object o) {
|
||||
if (o == null) {
|
||||
return "null";
|
||||
}
|
||||
return o.toString().replace("\n", "\n ");
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,210 @@
|
||||
package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.EntityRef;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
|
||||
import java.util.*;
|
||||
import javax.annotation.Generated;
|
||||
|
||||
/**
|
||||
* FooRef
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class FooRef extends EntityRef implements FooRefOrValue {
|
||||
|
||||
@JsonProperty("foorefPropA")
|
||||
private String foorefPropA;
|
||||
|
||||
@JsonProperty("href")
|
||||
private String href;
|
||||
|
||||
@JsonProperty("id")
|
||||
private String id;
|
||||
|
||||
@JsonProperty("@schemaLocation")
|
||||
private String atSchemaLocation;
|
||||
|
||||
@JsonProperty("@baseType")
|
||||
private String atBaseType;
|
||||
|
||||
@JsonProperty("@type")
|
||||
private String atType;
|
||||
|
||||
public FooRef foorefPropA(String foorefPropA) {
|
||||
this.foorefPropA = foorefPropA;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get foorefPropA
|
||||
* @return foorefPropA
|
||||
*/
|
||||
|
||||
@Schema(name = "foorefPropA", required = false)
|
||||
public String getFoorefPropA() {
|
||||
return foorefPropA;
|
||||
}
|
||||
|
||||
public void setFoorefPropA(String foorefPropA) {
|
||||
this.foorefPropA = foorefPropA;
|
||||
}
|
||||
|
||||
public FooRef href(String href) {
|
||||
this.href = href;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Hyperlink reference
|
||||
* @return href
|
||||
*/
|
||||
|
||||
@Schema(name = "href", description = "Hyperlink reference", required = false)
|
||||
public String getHref() {
|
||||
return href;
|
||||
}
|
||||
|
||||
public void setHref(String href) {
|
||||
this.href = href;
|
||||
}
|
||||
|
||||
public FooRef id(String id) {
|
||||
this.id = id;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* unique identifier
|
||||
* @return id
|
||||
*/
|
||||
|
||||
@Schema(name = "id", description = "unique identifier", required = false)
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public FooRef atSchemaLocation(String atSchemaLocation) {
|
||||
this.atSchemaLocation = atSchemaLocation;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* A URI to a JSON-Schema file that defines additional attributes and relationships
|
||||
* @return atSchemaLocation
|
||||
*/
|
||||
|
||||
@Schema(name = "@schemaLocation", description = "A URI to a JSON-Schema file that defines additional attributes and relationships", required = false)
|
||||
public String getAtSchemaLocation() {
|
||||
return atSchemaLocation;
|
||||
}
|
||||
|
||||
public void setAtSchemaLocation(String atSchemaLocation) {
|
||||
this.atSchemaLocation = atSchemaLocation;
|
||||
}
|
||||
|
||||
public FooRef atBaseType(String atBaseType) {
|
||||
this.atBaseType = atBaseType;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* When sub-classing, this defines the super-class
|
||||
* @return atBaseType
|
||||
*/
|
||||
|
||||
@Schema(name = "@baseType", description = "When sub-classing, this defines the super-class", required = false)
|
||||
public String getAtBaseType() {
|
||||
return atBaseType;
|
||||
}
|
||||
|
||||
public void setAtBaseType(String atBaseType) {
|
||||
this.atBaseType = atBaseType;
|
||||
}
|
||||
|
||||
public FooRef atType(String atType) {
|
||||
this.atType = atType;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* When sub-classing, this defines the sub-class Extensible name
|
||||
* @return atType
|
||||
*/
|
||||
@NotNull
|
||||
@Schema(name = "@type", description = "When sub-classing, this defines the sub-class Extensible name", required = true)
|
||||
public String getAtType() {
|
||||
return atType;
|
||||
}
|
||||
|
||||
public void setAtType(String atType) {
|
||||
this.atType = atType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
FooRef fooRef = (FooRef) o;
|
||||
return Objects.equals(this.foorefPropA, fooRef.foorefPropA) &&
|
||||
Objects.equals(this.href, fooRef.href) &&
|
||||
Objects.equals(this.id, fooRef.id) &&
|
||||
Objects.equals(this.atSchemaLocation, fooRef.atSchemaLocation) &&
|
||||
Objects.equals(this.atBaseType, fooRef.atBaseType) &&
|
||||
Objects.equals(this.atType, fooRef.atType) &&
|
||||
super.equals(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(foorefPropA, href, id, atSchemaLocation, atBaseType, atType, super.hashCode());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("class FooRef {\n");
|
||||
sb.append(" ").append(toIndentedString(super.toString())).append("\n");
|
||||
sb.append(" foorefPropA: ").append(toIndentedString(foorefPropA)).append("\n");
|
||||
sb.append(" href: ").append(toIndentedString(href)).append("\n");
|
||||
sb.append(" id: ").append(toIndentedString(id)).append("\n");
|
||||
sb.append(" atSchemaLocation: ").append(toIndentedString(atSchemaLocation)).append("\n");
|
||||
sb.append(" atBaseType: ").append(toIndentedString(atBaseType)).append("\n");
|
||||
sb.append(" atType: ").append(toIndentedString(atType)).append("\n");
|
||||
sb.append("}");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the given object to string with each line indented by 4 spaces
|
||||
* (except the first line).
|
||||
*/
|
||||
private String toIndentedString(Object o) {
|
||||
if (o == null) {
|
||||
return "null";
|
||||
}
|
||||
return o.toString().replace("\n", "\n ");
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,36 @@
|
||||
package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.Foo;
|
||||
import org.openapitools.model.FooRef;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
|
||||
import java.util.*;
|
||||
import javax.annotation.Generated;
|
||||
|
||||
|
||||
@JsonIgnoreProperties(
|
||||
value = "@type", // ignore manually set @type, it will be automatically generated by Jackson during serialization
|
||||
allowSetters = true // allows the @type to be set during deserialization
|
||||
)
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "@type", visible = true)
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = Foo.class, name = "Foo"),
|
||||
@JsonSubTypes.Type(value = FooRef.class, name = "FooRef")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public interface FooRefOrValue {
|
||||
public String getAtType();
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
server.port=8080
|
||||
spring.jackson.date-format=org.openapitools.RFC3339DateFormat
|
||||
spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS=false
|
@ -0,0 +1,205 @@
|
||||
openapi: 3.0.1
|
||||
info:
|
||||
description: |
|
||||
This tests for a oneOf interface representation
|
||||
title: ByRefOrValue
|
||||
version: 0.0.1
|
||||
servers:
|
||||
- url: http://localhost:8080
|
||||
tags:
|
||||
- name: Foo
|
||||
- name: Bar
|
||||
paths:
|
||||
/foo:
|
||||
get:
|
||||
operationId: getAllFoos
|
||||
responses:
|
||||
"200":
|
||||
content:
|
||||
application/json;charset=utf-8:
|
||||
schema:
|
||||
items:
|
||||
$ref: '#/components/schemas/FooRefOrValue'
|
||||
type: array
|
||||
description: Success
|
||||
summary: GET all Foos
|
||||
tags:
|
||||
- Foo
|
||||
x-accepts: application/json;charset=utf-8
|
||||
x-tags:
|
||||
- tag: Foo
|
||||
post:
|
||||
operationId: createFoo
|
||||
requestBody:
|
||||
$ref: '#/components/requestBodies/Foo'
|
||||
responses:
|
||||
"201":
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/FooRefOrValue'
|
||||
description: Error
|
||||
summary: Create a Foo
|
||||
tags:
|
||||
- Foo
|
||||
x-contentType: application/json;charset=utf-8
|
||||
x-accepts: application/json
|
||||
x-tags:
|
||||
- tag: Foo
|
||||
/bar:
|
||||
post:
|
||||
operationId: createBar
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Bar_Create'
|
||||
required: true
|
||||
responses:
|
||||
"200":
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Bar'
|
||||
description: Bar created
|
||||
summary: Create a Bar
|
||||
tags:
|
||||
- Bar
|
||||
x-contentType: application/json
|
||||
x-accepts: application/json
|
||||
x-tags:
|
||||
- tag: Bar
|
||||
components:
|
||||
requestBodies:
|
||||
Foo:
|
||||
content:
|
||||
application/json;charset=utf-8:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Foo'
|
||||
description: The Foo to be created
|
||||
responses:
|
||||
"204":
|
||||
content: {}
|
||||
description: Deleted
|
||||
"201Foo":
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/FooRefOrValue'
|
||||
description: Error
|
||||
"200FooArray":
|
||||
content:
|
||||
application/json;charset=utf-8:
|
||||
schema:
|
||||
items:
|
||||
$ref: '#/components/schemas/FooRefOrValue'
|
||||
type: array
|
||||
description: Success
|
||||
schemas:
|
||||
Addressable:
|
||||
description: Base schema for adressable entities
|
||||
properties:
|
||||
href:
|
||||
description: Hyperlink reference
|
||||
type: string
|
||||
id:
|
||||
description: unique identifier
|
||||
type: string
|
||||
type: object
|
||||
Extensible:
|
||||
properties:
|
||||
'@schemaLocation':
|
||||
description: A URI to a JSON-Schema file that defines additional attributes
|
||||
and relationships
|
||||
type: string
|
||||
'@baseType':
|
||||
description: "When sub-classing, this defines the super-class"
|
||||
type: string
|
||||
'@type':
|
||||
description: "When sub-classing, this defines the sub-class Extensible name"
|
||||
type: string
|
||||
required:
|
||||
- '@type'
|
||||
type: object
|
||||
Entity:
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/Addressable'
|
||||
- $ref: '#/components/schemas/Extensible'
|
||||
discriminator:
|
||||
propertyName: '@type'
|
||||
type: object
|
||||
EntityRef:
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/Addressable'
|
||||
- $ref: '#/components/schemas/Extensible'
|
||||
description: Entity reference schema to be use for all entityRef class.
|
||||
discriminator:
|
||||
propertyName: '@type'
|
||||
properties:
|
||||
name:
|
||||
description: Name of the related entity.
|
||||
type: string
|
||||
'@referredType':
|
||||
description: The actual type of the target instance when needed for disambiguation.
|
||||
type: string
|
||||
type: object
|
||||
FooRefOrValue:
|
||||
discriminator:
|
||||
propertyName: '@type'
|
||||
oneOf:
|
||||
- $ref: '#/components/schemas/Foo'
|
||||
- $ref: '#/components/schemas/FooRef'
|
||||
type: object
|
||||
x-one-of-name: FooRefOrValue
|
||||
Foo:
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/Entity'
|
||||
example:
|
||||
fooPropA: fooPropA
|
||||
fooPropB: fooPropB
|
||||
properties:
|
||||
fooPropA:
|
||||
type: string
|
||||
fooPropB:
|
||||
type: string
|
||||
type: object
|
||||
FooRef:
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/EntityRef'
|
||||
discriminator:
|
||||
propertyName: '@type'
|
||||
properties:
|
||||
foorefPropA:
|
||||
type: string
|
||||
type: object
|
||||
Bar_Create:
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/Entity'
|
||||
properties:
|
||||
barPropA:
|
||||
type: string
|
||||
fooPropB:
|
||||
type: string
|
||||
foo:
|
||||
$ref: '#/components/schemas/FooRefOrValue'
|
||||
type: object
|
||||
Bar:
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/Entity'
|
||||
example:
|
||||
foo: null
|
||||
id: id
|
||||
fooPropB: fooPropB
|
||||
barPropA: barPropA
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
barPropA:
|
||||
type: string
|
||||
fooPropB:
|
||||
type: string
|
||||
foo:
|
||||
$ref: '#/components/schemas/FooRefOrValue'
|
||||
required:
|
||||
- id
|
||||
type: object
|
@ -0,0 +1,13 @@
|
||||
package org.openapitools;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
|
||||
@SpringBootTest
|
||||
class OpenApiGeneratorApplicationTests {
|
||||
|
||||
@Test
|
||||
void contextLoads() {
|
||||
}
|
||||
|
||||
}
|
@ -7,6 +7,9 @@ import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.Cat;
|
||||
import org.openapitools.model.Dog;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.*;
|
||||
@ -28,8 +31,9 @@ import javax.annotation.Generated;
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat"),
|
||||
@JsonSubTypes.Type(value = Cat.class, name = "Cat"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import org.openapitools.model.BigCatAllOf;
|
||||
import org.openapitools.model.Cat;
|
||||
@ -20,6 +23,7 @@ import javax.annotation.Generated;
|
||||
* BigCat
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class BigCat extends Cat {
|
||||
|
||||
|
@ -2,9 +2,13 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.Animal;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.CatAllOf;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
@ -19,6 +23,15 @@ import javax.annotation.Generated;
|
||||
* Cat
|
||||
*/
|
||||
|
||||
@JsonIgnoreProperties(
|
||||
value = "className", // ignore manually set className, it will be automatically generated by Jackson during serialization
|
||||
allowSetters = true // allows the className to be set during deserialization
|
||||
)
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "className", visible = true)
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Cat extends Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.Animal;
|
||||
import org.openapitools.model.DogAllOf;
|
||||
import java.time.OffsetDateTime;
|
||||
@ -19,6 +22,7 @@ import javax.annotation.Generated;
|
||||
* Dog
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Dog extends Animal {
|
||||
|
||||
|
@ -7,6 +7,9 @@ import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.Cat;
|
||||
import org.openapitools.model.Dog;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
@ -29,8 +32,9 @@ import javax.annotation.Generated;
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat"),
|
||||
@JsonSubTypes.Type(value = Cat.class, name = "Cat"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import org.openapitools.model.BigCatAllOf;
|
||||
import org.openapitools.model.Cat;
|
||||
@ -21,6 +24,7 @@ import javax.annotation.Generated;
|
||||
* BigCat
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class BigCat extends Cat {
|
||||
|
||||
|
@ -2,9 +2,13 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.Animal;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.CatAllOf;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
@ -20,6 +24,15 @@ import javax.annotation.Generated;
|
||||
* Cat
|
||||
*/
|
||||
|
||||
@JsonIgnoreProperties(
|
||||
value = "className", // ignore manually set className, it will be automatically generated by Jackson during serialization
|
||||
allowSetters = true // allows the className to be set during deserialization
|
||||
)
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "className", visible = true)
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Cat extends Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.Animal;
|
||||
import org.openapitools.model.DogAllOf;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
@ -20,6 +23,7 @@ import javax.annotation.Generated;
|
||||
* Dog
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Dog extends Animal {
|
||||
|
||||
|
@ -7,6 +7,9 @@ import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.Cat;
|
||||
import org.openapitools.model.Dog;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
@ -29,8 +32,9 @@ import javax.annotation.Generated;
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat"),
|
||||
@JsonSubTypes.Type(value = Cat.class, name = "Cat"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import org.openapitools.model.BigCatAllOf;
|
||||
import org.openapitools.model.Cat;
|
||||
@ -21,6 +24,7 @@ import javax.annotation.Generated;
|
||||
* BigCat
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class BigCat extends Cat {
|
||||
|
||||
|
@ -2,9 +2,13 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.Animal;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.CatAllOf;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
@ -20,6 +24,15 @@ import javax.annotation.Generated;
|
||||
* Cat
|
||||
*/
|
||||
|
||||
@JsonIgnoreProperties(
|
||||
value = "className", // ignore manually set className, it will be automatically generated by Jackson during serialization
|
||||
allowSetters = true // allows the className to be set during deserialization
|
||||
)
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "className", visible = true)
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Cat extends Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.Animal;
|
||||
import org.openapitools.model.DogAllOf;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
@ -20,6 +23,7 @@ import javax.annotation.Generated;
|
||||
* Dog
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Dog extends Animal {
|
||||
|
||||
|
@ -7,6 +7,9 @@ import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.Cat;
|
||||
import org.openapitools.model.Dog;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
@ -29,8 +32,9 @@ import javax.annotation.Generated;
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat"),
|
||||
@JsonSubTypes.Type(value = Cat.class, name = "Cat"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import org.openapitools.model.BigCatAllOf;
|
||||
import org.openapitools.model.Cat;
|
||||
@ -21,6 +24,7 @@ import javax.annotation.Generated;
|
||||
* BigCat
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class BigCat extends Cat {
|
||||
|
||||
|
@ -2,9 +2,13 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.Animal;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.CatAllOf;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
@ -20,6 +24,15 @@ import javax.annotation.Generated;
|
||||
* Cat
|
||||
*/
|
||||
|
||||
@JsonIgnoreProperties(
|
||||
value = "className", // ignore manually set className, it will be automatically generated by Jackson during serialization
|
||||
allowSetters = true // allows the className to be set during deserialization
|
||||
)
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "className", visible = true)
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Cat extends Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.Animal;
|
||||
import org.openapitools.model.DogAllOf;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
@ -20,6 +23,7 @@ import javax.annotation.Generated;
|
||||
* Dog
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Dog extends Animal {
|
||||
|
||||
|
@ -7,6 +7,9 @@ import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.Cat;
|
||||
import org.openapitools.model.Dog;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
@ -29,8 +32,9 @@ import javax.annotation.Generated;
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat"),
|
||||
@JsonSubTypes.Type(value = Cat.class, name = "Cat"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import org.openapitools.model.BigCatAllOf;
|
||||
import org.openapitools.model.Cat;
|
||||
@ -21,6 +24,7 @@ import javax.annotation.Generated;
|
||||
* BigCat
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class BigCat extends Cat {
|
||||
|
||||
|
@ -2,9 +2,13 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.Animal;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.CatAllOf;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
@ -20,6 +24,15 @@ import javax.annotation.Generated;
|
||||
* Cat
|
||||
*/
|
||||
|
||||
@JsonIgnoreProperties(
|
||||
value = "className", // ignore manually set className, it will be automatically generated by Jackson during serialization
|
||||
allowSetters = true // allows the className to be set during deserialization
|
||||
)
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "className", visible = true)
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Cat extends Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.Animal;
|
||||
import org.openapitools.model.DogAllOf;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
@ -20,6 +23,7 @@ import javax.annotation.Generated;
|
||||
* Dog
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Dog extends Animal {
|
||||
|
||||
|
@ -7,6 +7,9 @@ import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.Cat;
|
||||
import org.openapitools.model.Dog;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
@ -29,8 +32,9 @@ import javax.annotation.Generated;
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat"),
|
||||
@JsonSubTypes.Type(value = Cat.class, name = "Cat"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import org.openapitools.model.BigCatAllOf;
|
||||
import org.openapitools.model.Cat;
|
||||
@ -21,6 +24,7 @@ import javax.annotation.Generated;
|
||||
* BigCat
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class BigCat extends Cat {
|
||||
|
||||
|
@ -2,9 +2,13 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.Animal;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.CatAllOf;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
@ -20,6 +24,15 @@ import javax.annotation.Generated;
|
||||
* Cat
|
||||
*/
|
||||
|
||||
@JsonIgnoreProperties(
|
||||
value = "className", // ignore manually set className, it will be automatically generated by Jackson during serialization
|
||||
allowSetters = true // allows the className to be set during deserialization
|
||||
)
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "className", visible = true)
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Cat extends Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import org.openapitools.model.Animal;
|
||||
import org.openapitools.model.DogAllOf;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
@ -20,6 +23,7 @@ import javax.annotation.Generated;
|
||||
* Dog
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Dog extends Animal {
|
||||
|
||||
|
@ -9,6 +9,9 @@ import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.Cat;
|
||||
import org.openapitools.model.Dog;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.*;
|
||||
@ -29,8 +32,9 @@ import javax.annotation.Generated;
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat"),
|
||||
@JsonSubTypes.Type(value = Cat.class, name = "Cat"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
@ -21,6 +24,7 @@ import javax.annotation.Generated;
|
||||
* BigCat
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class BigCat extends Cat {
|
||||
|
||||
|
@ -2,11 +2,15 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.Animal;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.CatAllOf;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
@ -20,6 +24,15 @@ import javax.annotation.Generated;
|
||||
* Cat
|
||||
*/
|
||||
|
||||
@JsonIgnoreProperties(
|
||||
value = "className", // ignore manually set className, it will be automatically generated by Jackson during serialization
|
||||
allowSetters = true // allows the className to be set during deserialization
|
||||
)
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "className", visible = true)
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Cat extends Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.Animal;
|
||||
@ -20,6 +23,7 @@ import javax.annotation.Generated;
|
||||
* Dog
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Dog extends Animal {
|
||||
|
||||
|
@ -9,6 +9,9 @@ import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.Cat;
|
||||
import org.openapitools.model.Dog;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
@ -30,8 +33,9 @@ import javax.annotation.Generated;
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat"),
|
||||
@JsonSubTypes.Type(value = Cat.class, name = "Cat"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
@ -22,6 +25,7 @@ import javax.annotation.Generated;
|
||||
* BigCat
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class BigCat extends Cat {
|
||||
|
||||
|
@ -2,11 +2,15 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.Animal;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.CatAllOf;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
@ -21,6 +25,15 @@ import javax.annotation.Generated;
|
||||
* Cat
|
||||
*/
|
||||
|
||||
@JsonIgnoreProperties(
|
||||
value = "className", // ignore manually set className, it will be automatically generated by Jackson during serialization
|
||||
allowSetters = true // allows the className to be set during deserialization
|
||||
)
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "className", visible = true)
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Cat extends Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.Animal;
|
||||
@ -21,6 +24,7 @@ import javax.annotation.Generated;
|
||||
* Dog
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Dog extends Animal {
|
||||
|
||||
|
@ -9,6 +9,9 @@ import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.Cat;
|
||||
import org.openapitools.model.Dog;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
@ -30,8 +33,9 @@ import javax.annotation.Generated;
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat"),
|
||||
@JsonSubTypes.Type(value = Cat.class, name = "Cat"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
@ -22,6 +25,7 @@ import javax.annotation.Generated;
|
||||
* BigCat
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class BigCat extends Cat {
|
||||
|
||||
|
@ -2,11 +2,15 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.Animal;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.CatAllOf;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
@ -21,6 +25,15 @@ import javax.annotation.Generated;
|
||||
* Cat
|
||||
*/
|
||||
|
||||
@JsonIgnoreProperties(
|
||||
value = "className", // ignore manually set className, it will be automatically generated by Jackson during serialization
|
||||
allowSetters = true // allows the className to be set during deserialization
|
||||
)
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "className", visible = true)
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Cat extends Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.Animal;
|
||||
@ -21,6 +24,7 @@ import javax.annotation.Generated;
|
||||
* Dog
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Dog extends Animal {
|
||||
|
||||
|
@ -9,6 +9,9 @@ import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.Cat;
|
||||
import org.openapitools.model.Dog;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
@ -30,8 +33,9 @@ import javax.annotation.Generated;
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat"),
|
||||
@JsonSubTypes.Type(value = Cat.class, name = "Cat"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
@ -22,6 +25,7 @@ import javax.annotation.Generated;
|
||||
* BigCat
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class BigCat extends Cat {
|
||||
|
||||
|
@ -2,11 +2,15 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.Animal;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.CatAllOf;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
@ -21,6 +25,15 @@ import javax.annotation.Generated;
|
||||
* Cat
|
||||
*/
|
||||
|
||||
@JsonIgnoreProperties(
|
||||
value = "className", // ignore manually set className, it will be automatically generated by Jackson during serialization
|
||||
allowSetters = true // allows the className to be set during deserialization
|
||||
)
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "className", visible = true)
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Cat extends Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.Animal;
|
||||
@ -21,6 +24,7 @@ import javax.annotation.Generated;
|
||||
* Dog
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Dog extends Animal {
|
||||
|
||||
|
@ -9,6 +9,9 @@ import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.Cat;
|
||||
import org.openapitools.model.Dog;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
@ -30,8 +33,9 @@ import javax.annotation.Generated;
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat"),
|
||||
@JsonSubTypes.Type(value = Cat.class, name = "Cat"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
@ -22,6 +25,7 @@ import javax.annotation.Generated;
|
||||
* BigCat
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class BigCat extends Cat {
|
||||
|
||||
|
@ -2,11 +2,15 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.Animal;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.CatAllOf;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
@ -21,6 +25,15 @@ import javax.annotation.Generated;
|
||||
* Cat
|
||||
*/
|
||||
|
||||
@JsonIgnoreProperties(
|
||||
value = "className", // ignore manually set className, it will be automatically generated by Jackson during serialization
|
||||
allowSetters = true // allows the className to be set during deserialization
|
||||
)
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "className", visible = true)
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Cat extends Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.Animal;
|
||||
@ -21,6 +24,7 @@ import javax.annotation.Generated;
|
||||
* Dog
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Dog extends Animal {
|
||||
|
||||
|
@ -9,6 +9,9 @@ import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.Cat;
|
||||
import org.openapitools.model.Dog;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
@ -30,8 +33,9 @@ import javax.annotation.Generated;
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat"),
|
||||
@JsonSubTypes.Type(value = Cat.class, name = "Cat"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
@ -22,6 +25,7 @@ import javax.annotation.Generated;
|
||||
* BigCat
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class BigCat extends Cat {
|
||||
|
||||
|
@ -2,11 +2,15 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.Animal;
|
||||
import org.openapitools.model.BigCat;
|
||||
import org.openapitools.model.CatAllOf;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
@ -21,6 +25,15 @@ import javax.annotation.Generated;
|
||||
* Cat
|
||||
*/
|
||||
|
||||
@JsonIgnoreProperties(
|
||||
value = "className", // ignore manually set className, it will be automatically generated by Jackson during serialization
|
||||
allowSetters = true // allows the className to be set during deserialization
|
||||
)
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "className", visible = true)
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = BigCat.class, name = "BigCat")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Cat extends Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.Animal;
|
||||
@ -21,6 +24,7 @@ import javax.annotation.Generated;
|
||||
* Dog
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Dog extends Animal {
|
||||
|
||||
|
@ -9,6 +9,8 @@ import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.Cat;
|
||||
import org.openapitools.model.Dog;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
@ -29,8 +31,9 @@ import javax.annotation.Generated;
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "className", visible = true)
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = Cat.class, name = "Cat"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.Animal;
|
||||
@ -21,6 +24,7 @@ import javax.annotation.Generated;
|
||||
* Cat
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Cat extends Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.Animal;
|
||||
@ -21,6 +24,7 @@ import javax.annotation.Generated;
|
||||
* Dog
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Dog extends Animal {
|
||||
|
||||
|
@ -9,6 +9,8 @@ import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.Cat;
|
||||
import org.openapitools.model.Dog;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
@ -29,8 +31,9 @@ import javax.annotation.Generated;
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "className", visible = true)
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = Cat.class, name = "Cat"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.Animal;
|
||||
@ -21,6 +24,7 @@ import javax.annotation.Generated;
|
||||
* Cat
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Cat extends Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.Animal;
|
||||
@ -21,6 +24,7 @@ import javax.annotation.Generated;
|
||||
* Dog
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Dog extends Animal {
|
||||
|
||||
|
@ -9,6 +9,8 @@ import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.Cat;
|
||||
import org.openapitools.model.Dog;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
@ -29,8 +31,9 @@ import javax.annotation.Generated;
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "className", visible = true)
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = Cat.class, name = "Cat"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.Animal;
|
||||
@ -21,6 +24,7 @@ import javax.annotation.Generated;
|
||||
* Cat
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Cat extends Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.Animal;
|
||||
@ -21,6 +24,7 @@ import javax.annotation.Generated;
|
||||
* Dog
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Dog extends Animal {
|
||||
|
||||
|
@ -9,6 +9,8 @@ import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.Cat;
|
||||
import org.openapitools.model.Dog;
|
||||
import org.openapitools.jackson.nullable.JsonNullable;
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.validation.Valid;
|
||||
@ -29,8 +31,9 @@ import javax.annotation.Generated;
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "className", visible = true)
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = Cat.class, name = "Cat"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog"),
|
||||
@JsonSubTypes.Type(value = Dog.class, name = "Dog")
|
||||
})
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Animal {
|
||||
|
||||
|
@ -2,8 +2,11 @@ package org.openapitools.model;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.openapitools.model.Animal;
|
||||
@ -21,6 +24,7 @@ import javax.annotation.Generated;
|
||||
* Cat
|
||||
*/
|
||||
|
||||
|
||||
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
|
||||
public class Cat extends Animal {
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user