forked from loafle/openapi-generator-original
Add tests for anyof with discriminator (#19021)
* add tests for anyof with discriminator * remove test * update samples
This commit is contained in:
parent
6b9d95be89
commit
0c4bfe3ffe
@ -2202,6 +2202,13 @@ components:
|
|||||||
- $ref: '#/components/schemas/Pig'
|
- $ref: '#/components/schemas/Pig'
|
||||||
discriminator:
|
discriminator:
|
||||||
propertyName: className
|
propertyName: className
|
||||||
|
mammal_anyof:
|
||||||
|
anyOf:
|
||||||
|
- $ref: '#/components/schemas/whale'
|
||||||
|
- $ref: '#/components/schemas/zebra'
|
||||||
|
- $ref: '#/components/schemas/Pig'
|
||||||
|
discriminator:
|
||||||
|
propertyName: className
|
||||||
whale:
|
whale:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
|
@ -1981,6 +1981,13 @@ components:
|
|||||||
- $ref: '#/components/schemas/Pig'
|
- $ref: '#/components/schemas/Pig'
|
||||||
discriminator:
|
discriminator:
|
||||||
propertyName: className
|
propertyName: className
|
||||||
|
mammal_anyof:
|
||||||
|
anyOf:
|
||||||
|
- $ref: '#/components/schemas/whale'
|
||||||
|
- $ref: '#/components/schemas/zebra'
|
||||||
|
- $ref: '#/components/schemas/Pig'
|
||||||
|
discriminator:
|
||||||
|
propertyName: className
|
||||||
whale:
|
whale:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
|
@ -1,47 +0,0 @@
|
|||||||
openapi: 3.0.1
|
|
||||||
info:
|
|
||||||
title: sample issue 18975
|
|
||||||
description: sample issue 18975
|
|
||||||
version: "1.0"
|
|
||||||
paths:
|
|
||||||
/sample:
|
|
||||||
get:
|
|
||||||
summary: sample
|
|
||||||
operationId: getSample
|
|
||||||
responses:
|
|
||||||
"200":
|
|
||||||
description: Found vehicle.
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
$ref: '#/components/schemas/DifficultType'
|
|
||||||
components:
|
|
||||||
schemas:
|
|
||||||
SubA:
|
|
||||||
required:
|
|
||||||
- type
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
type:
|
|
||||||
type: string
|
|
||||||
sim:
|
|
||||||
type: string
|
|
||||||
SubB:
|
|
||||||
required:
|
|
||||||
- type
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
type:
|
|
||||||
type: string
|
|
||||||
system:
|
|
||||||
type: string
|
|
||||||
DifficultType:
|
|
||||||
type: object
|
|
||||||
discriminator:
|
|
||||||
propertyName: type
|
|
||||||
mapping:
|
|
||||||
"typeA": '#/components/schemas/SubA'
|
|
||||||
"typeB": '#/components/schemas/SubB'
|
|
||||||
anyOf:
|
|
||||||
- $ref: '#/components/schemas/SubA'
|
|
||||||
- $ref: '#/components/schemas/SubB'
|
|
@ -46,6 +46,7 @@ docs/HasOnlyReadOnly.md
|
|||||||
docs/HealthCheckResult.md
|
docs/HealthCheckResult.md
|
||||||
docs/IsoscelesTriangle.md
|
docs/IsoscelesTriangle.md
|
||||||
docs/Mammal.md
|
docs/Mammal.md
|
||||||
|
docs/MammalAnyof.md
|
||||||
docs/MapTest.md
|
docs/MapTest.md
|
||||||
docs/MixedPropertiesAndAdditionalPropertiesClass.md
|
docs/MixedPropertiesAndAdditionalPropertiesClass.md
|
||||||
docs/Model200Response.md
|
docs/Model200Response.md
|
||||||
@ -158,6 +159,7 @@ src/main/java/org/openapitools/client/model/HasOnlyReadOnly.java
|
|||||||
src/main/java/org/openapitools/client/model/HealthCheckResult.java
|
src/main/java/org/openapitools/client/model/HealthCheckResult.java
|
||||||
src/main/java/org/openapitools/client/model/IsoscelesTriangle.java
|
src/main/java/org/openapitools/client/model/IsoscelesTriangle.java
|
||||||
src/main/java/org/openapitools/client/model/Mammal.java
|
src/main/java/org/openapitools/client/model/Mammal.java
|
||||||
|
src/main/java/org/openapitools/client/model/MammalAnyof.java
|
||||||
src/main/java/org/openapitools/client/model/MapTest.java
|
src/main/java/org/openapitools/client/model/MapTest.java
|
||||||
src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java
|
src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java
|
||||||
src/main/java/org/openapitools/client/model/Model200Response.java
|
src/main/java/org/openapitools/client/model/Model200Response.java
|
||||||
|
@ -199,6 +199,7 @@ Class | Method | HTTP request | Description
|
|||||||
- [HealthCheckResult](docs/HealthCheckResult.md)
|
- [HealthCheckResult](docs/HealthCheckResult.md)
|
||||||
- [IsoscelesTriangle](docs/IsoscelesTriangle.md)
|
- [IsoscelesTriangle](docs/IsoscelesTriangle.md)
|
||||||
- [Mammal](docs/Mammal.md)
|
- [Mammal](docs/Mammal.md)
|
||||||
|
- [MammalAnyof](docs/MammalAnyof.md)
|
||||||
- [MapTest](docs/MapTest.md)
|
- [MapTest](docs/MapTest.md)
|
||||||
- [MixedPropertiesAndAdditionalPropertiesClass](docs/MixedPropertiesAndAdditionalPropertiesClass.md)
|
- [MixedPropertiesAndAdditionalPropertiesClass](docs/MixedPropertiesAndAdditionalPropertiesClass.md)
|
||||||
- [Model200Response](docs/Model200Response.md)
|
- [Model200Response](docs/Model200Response.md)
|
||||||
|
@ -2059,6 +2059,13 @@ components:
|
|||||||
- $ref: '#/components/schemas/whale'
|
- $ref: '#/components/schemas/whale'
|
||||||
- $ref: '#/components/schemas/zebra'
|
- $ref: '#/components/schemas/zebra'
|
||||||
- $ref: '#/components/schemas/Pig'
|
- $ref: '#/components/schemas/Pig'
|
||||||
|
mammal_anyof:
|
||||||
|
anyOf:
|
||||||
|
- $ref: '#/components/schemas/whale'
|
||||||
|
- $ref: '#/components/schemas/zebra'
|
||||||
|
- $ref: '#/components/schemas/Pig'
|
||||||
|
discriminator:
|
||||||
|
propertyName: className
|
||||||
whale:
|
whale:
|
||||||
properties:
|
properties:
|
||||||
hasBaleen:
|
hasBaleen:
|
||||||
|
46
samples/client/petstore/java/jersey3/docs/MammalAnyof.md
Normal file
46
samples/client/petstore/java/jersey3/docs/MammalAnyof.md
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
|
||||||
|
|
||||||
|
# MammalAnyof
|
||||||
|
|
||||||
|
## anyOf schemas
|
||||||
|
* [Pig](Pig.md)
|
||||||
|
* [Whale](Whale.md)
|
||||||
|
* [Zebra](Zebra.md)
|
||||||
|
|
||||||
|
## Example
|
||||||
|
```java
|
||||||
|
// Import classes:
|
||||||
|
import org.openapitools.client.model.MammalAnyof;
|
||||||
|
import org.openapitools.client.model.Pig;
|
||||||
|
import org.openapitools.client.model.Whale;
|
||||||
|
import org.openapitools.client.model.Zebra;
|
||||||
|
|
||||||
|
public class Example {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
MammalAnyof exampleMammalAnyof = new MammalAnyof();
|
||||||
|
|
||||||
|
// create a new Pig
|
||||||
|
Pig examplePig = new Pig();
|
||||||
|
// set MammalAnyof to Pig
|
||||||
|
exampleMammalAnyof.setActualInstance(examplePig);
|
||||||
|
// to get back the Pig set earlier
|
||||||
|
Pig testPig = (Pig) exampleMammalAnyof.getActualInstance();
|
||||||
|
|
||||||
|
// create a new Whale
|
||||||
|
Whale exampleWhale = new Whale();
|
||||||
|
// set MammalAnyof to Whale
|
||||||
|
exampleMammalAnyof.setActualInstance(exampleWhale);
|
||||||
|
// to get back the Whale set earlier
|
||||||
|
Whale testWhale = (Whale) exampleMammalAnyof.getActualInstance();
|
||||||
|
|
||||||
|
// create a new Zebra
|
||||||
|
Zebra exampleZebra = new Zebra();
|
||||||
|
// set MammalAnyof to Zebra
|
||||||
|
exampleMammalAnyof.setActualInstance(exampleZebra);
|
||||||
|
// to get back the Zebra set earlier
|
||||||
|
Zebra testZebra = (Zebra) exampleMammalAnyof.getActualInstance();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
@ -0,0 +1,320 @@
|
|||||||
|
/*
|
||||||
|
* OpenAPI Petstore
|
||||||
|
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
||||||
|
*
|
||||||
|
* The version of the OpenAPI document: 1.0.0
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
|
* https://openapi-generator.tech
|
||||||
|
* Do not edit the class manually.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
package org.openapitools.client.model;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonAnyGetter;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonAnySetter;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
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 com.fasterxml.jackson.annotation.JsonValue;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import org.openapitools.client.model.Pig;
|
||||||
|
import org.openapitools.client.model.Whale;
|
||||||
|
import org.openapitools.client.model.Zebra;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
|
||||||
|
import jakarta.validation.constraints.*;
|
||||||
|
import jakarta.validation.Valid;
|
||||||
|
import org.openapitools.client.JSON;
|
||||||
|
|
||||||
|
|
||||||
|
import jakarta.ws.rs.core.GenericType;
|
||||||
|
import jakarta.ws.rs.core.Response;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashSet;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonGenerator;
|
||||||
|
import com.fasterxml.jackson.core.JsonParser;
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
|
import com.fasterxml.jackson.databind.DeserializationContext;
|
||||||
|
import com.fasterxml.jackson.databind.JsonMappingException;
|
||||||
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
|
import com.fasterxml.jackson.databind.SerializerProvider;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
|
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
|
||||||
|
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
|
||||||
|
import org.openapitools.client.JSON;
|
||||||
|
|
||||||
|
@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0-SNAPSHOT")
|
||||||
|
@JsonDeserialize(using=MammalAnyof.MammalAnyofDeserializer.class)
|
||||||
|
@JsonSerialize(using = MammalAnyof.MammalAnyofSerializer.class)
|
||||||
|
public class MammalAnyof extends AbstractOpenApiSchema {
|
||||||
|
private static final Logger log = Logger.getLogger(MammalAnyof.class.getName());
|
||||||
|
|
||||||
|
public static class MammalAnyofSerializer extends StdSerializer<MammalAnyof> {
|
||||||
|
public MammalAnyofSerializer(Class<MammalAnyof> t) {
|
||||||
|
super(t);
|
||||||
|
}
|
||||||
|
|
||||||
|
public MammalAnyofSerializer() {
|
||||||
|
this(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void serialize(MammalAnyof value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
|
||||||
|
jgen.writeObject(value.getActualInstance());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class MammalAnyofDeserializer extends StdDeserializer<MammalAnyof> {
|
||||||
|
public MammalAnyofDeserializer() {
|
||||||
|
this(MammalAnyof.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public MammalAnyofDeserializer(Class<?> vc) {
|
||||||
|
super(vc);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MammalAnyof deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException {
|
||||||
|
JsonNode tree = jp.readValueAsTree();
|
||||||
|
|
||||||
|
Object deserialized = null;
|
||||||
|
Class<?> cls = JSON.getClassForElement(tree, new MammalAnyof().getClass());
|
||||||
|
if (cls != null) {
|
||||||
|
// When the OAS schema includes a discriminator, use the discriminator value to
|
||||||
|
// discriminate the anyOf schemas.
|
||||||
|
// Get the discriminator mapping value to get the class.
|
||||||
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(cls);
|
||||||
|
MammalAnyof ret = new MammalAnyof();
|
||||||
|
ret.setActualInstance(deserialized);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
// deserialize Pig
|
||||||
|
try {
|
||||||
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(Pig.class);
|
||||||
|
MammalAnyof ret = new MammalAnyof();
|
||||||
|
ret.setActualInstance(deserialized);
|
||||||
|
return ret;
|
||||||
|
} catch (Exception e) {
|
||||||
|
// deserialization failed, continue, log to help debugging
|
||||||
|
log.log(Level.FINER, "Input data does not match 'MammalAnyof'", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
// deserialize Whale
|
||||||
|
try {
|
||||||
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(Whale.class);
|
||||||
|
MammalAnyof ret = new MammalAnyof();
|
||||||
|
ret.setActualInstance(deserialized);
|
||||||
|
return ret;
|
||||||
|
} catch (Exception e) {
|
||||||
|
// deserialization failed, continue, log to help debugging
|
||||||
|
log.log(Level.FINER, "Input data does not match 'MammalAnyof'", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
// deserialize Zebra
|
||||||
|
try {
|
||||||
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(Zebra.class);
|
||||||
|
MammalAnyof ret = new MammalAnyof();
|
||||||
|
ret.setActualInstance(deserialized);
|
||||||
|
return ret;
|
||||||
|
} catch (Exception e) {
|
||||||
|
// deserialization failed, continue, log to help debugging
|
||||||
|
log.log(Level.FINER, "Input data does not match 'MammalAnyof'", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new IOException(String.format("Failed deserialization for MammalAnyof: no match found"));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle deserialization of the 'null' value.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public MammalAnyof getNullValue(DeserializationContext ctxt) throws JsonMappingException {
|
||||||
|
throw new JsonMappingException(ctxt.getParser(), "MammalAnyof cannot be null");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// store a list of schema names defined in anyOf
|
||||||
|
public static final Map<String, GenericType> schemas = new HashMap<>();
|
||||||
|
|
||||||
|
public MammalAnyof() {
|
||||||
|
super("anyOf", Boolean.FALSE);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* A container for additional, undeclared properties.
|
||||||
|
* This is a holder for any undeclared properties as specified with
|
||||||
|
* the 'additionalProperties' keyword in the OAS document.
|
||||||
|
*/
|
||||||
|
private Map<String, Object> additionalProperties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the additional (undeclared) property with the specified name and value.
|
||||||
|
* If the property does not already exist, create it otherwise replace it.
|
||||||
|
*/
|
||||||
|
@JsonAnySetter
|
||||||
|
public MammalAnyof putAdditionalProperty(String key, Object value) {
|
||||||
|
if (this.additionalProperties == null) {
|
||||||
|
this.additionalProperties = new HashMap<>();
|
||||||
|
}
|
||||||
|
this.additionalProperties.put(key, value);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the additional (undeclared) property.
|
||||||
|
*/
|
||||||
|
@JsonAnyGetter
|
||||||
|
public Map<String, Object> getAdditionalProperties() {
|
||||||
|
return additionalProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the additional (undeclared) property with the specified name.
|
||||||
|
*/
|
||||||
|
public Object getAdditionalProperty(String key) {
|
||||||
|
if (this.additionalProperties == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return this.additionalProperties.get(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return true if this mammal_anyof object is equal to o.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
return super.equals(o) && Objects.equals(this.additionalProperties, ((MammalAnyof)o).additionalProperties);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(getActualInstance(), isNullable(), getSchemaType(), additionalProperties);
|
||||||
|
}
|
||||||
|
public MammalAnyof(Pig o) {
|
||||||
|
super("anyOf", Boolean.FALSE);
|
||||||
|
setActualInstance(o);
|
||||||
|
}
|
||||||
|
|
||||||
|
public MammalAnyof(Whale o) {
|
||||||
|
super("anyOf", Boolean.FALSE);
|
||||||
|
setActualInstance(o);
|
||||||
|
}
|
||||||
|
|
||||||
|
public MammalAnyof(Zebra o) {
|
||||||
|
super("anyOf", Boolean.FALSE);
|
||||||
|
setActualInstance(o);
|
||||||
|
}
|
||||||
|
|
||||||
|
static {
|
||||||
|
schemas.put("Pig", new GenericType<Pig>() {
|
||||||
|
});
|
||||||
|
schemas.put("Whale", new GenericType<Whale>() {
|
||||||
|
});
|
||||||
|
schemas.put("Zebra", new GenericType<Zebra>() {
|
||||||
|
});
|
||||||
|
JSON.registerDescendants(MammalAnyof.class, Collections.unmodifiableMap(schemas));
|
||||||
|
// Initialize and register the discriminator mappings.
|
||||||
|
Map<String, Class<?>> mappings = new HashMap<>();
|
||||||
|
mappings.put("Pig", Pig.class);
|
||||||
|
mappings.put("whale", Whale.class);
|
||||||
|
mappings.put("zebra", Zebra.class);
|
||||||
|
mappings.put("mammal_anyof", MammalAnyof.class);
|
||||||
|
JSON.registerDiscriminator(MammalAnyof.class, "className", mappings);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, GenericType> getSchemas() {
|
||||||
|
return MammalAnyof.schemas;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the instance that matches the anyOf child schema, check
|
||||||
|
* the instance parameter is valid against the anyOf child schemas:
|
||||||
|
* Pig, Whale, Zebra
|
||||||
|
*
|
||||||
|
* It could be an instance of the 'anyOf' schemas.
|
||||||
|
* The anyOf child schemas may themselves be a composed schema (allOf, anyOf, anyOf).
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void setActualInstance(Object instance) {
|
||||||
|
if (JSON.isInstanceOf(Pig.class, instance, new HashSet<>())) {
|
||||||
|
super.setActualInstance(instance);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (JSON.isInstanceOf(Whale.class, instance, new HashSet<>())) {
|
||||||
|
super.setActualInstance(instance);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (JSON.isInstanceOf(Zebra.class, instance, new HashSet<>())) {
|
||||||
|
super.setActualInstance(instance);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new RuntimeException("Invalid instance type. Must be Pig, Whale, Zebra");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the actual instance, which can be the following:
|
||||||
|
* Pig, Whale, Zebra
|
||||||
|
*
|
||||||
|
* @return The actual instance (Pig, Whale, Zebra)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Object getActualInstance() {
|
||||||
|
return super.getActualInstance();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the actual instance of `Pig`. If the actual instance is not `Pig`,
|
||||||
|
* the ClassCastException will be thrown.
|
||||||
|
*
|
||||||
|
* @return The actual instance of `Pig`
|
||||||
|
* @throws ClassCastException if the instance is not `Pig`
|
||||||
|
*/
|
||||||
|
public Pig getPig() throws ClassCastException {
|
||||||
|
return (Pig)super.getActualInstance();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the actual instance of `Whale`. If the actual instance is not `Whale`,
|
||||||
|
* the ClassCastException will be thrown.
|
||||||
|
*
|
||||||
|
* @return The actual instance of `Whale`
|
||||||
|
* @throws ClassCastException if the instance is not `Whale`
|
||||||
|
*/
|
||||||
|
public Whale getWhale() throws ClassCastException {
|
||||||
|
return (Whale)super.getActualInstance();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the actual instance of `Zebra`. If the actual instance is not `Zebra`,
|
||||||
|
* the ClassCastException will be thrown.
|
||||||
|
*
|
||||||
|
* @return The actual instance of `Zebra`
|
||||||
|
* @throws ClassCastException if the instance is not `Zebra`
|
||||||
|
*/
|
||||||
|
public Zebra getZebra() throws ClassCastException {
|
||||||
|
return (Zebra)super.getActualInstance();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,79 @@
|
|||||||
|
/*
|
||||||
|
* OpenAPI Petstore
|
||||||
|
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
||||||
|
*
|
||||||
|
* The version of the OpenAPI document: 1.0.0
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
|
* https://openapi-generator.tech
|
||||||
|
* Do not edit the class manually.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
package org.openapitools.client.model;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
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 com.fasterxml.jackson.annotation.JsonValue;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import org.openapitools.client.model.Pig;
|
||||||
|
import org.openapitools.client.model.Whale;
|
||||||
|
import org.openapitools.client.model.Zebra;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Assertions;
|
||||||
|
import org.junit.jupiter.api.Disabled;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Model tests for MammalAnyof
|
||||||
|
*/
|
||||||
|
public class MammalAnyofTest {
|
||||||
|
private final MammalAnyof model = new MammalAnyof();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Model tests for MammalAnyof
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testMammalAnyof() {
|
||||||
|
// TODO: test MammalAnyof
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test the property 'hasBaleen'
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void hasBaleenTest() {
|
||||||
|
// TODO: test hasBaleen
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test the property 'hasTeeth'
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void hasTeethTest() {
|
||||||
|
// TODO: test hasTeeth
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test the property 'className'
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void classNameTest() {
|
||||||
|
// TODO: test className
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test the property 'type'
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void typeTest() {
|
||||||
|
// TODO: test type
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -60,6 +60,7 @@ docs/HasOnlyReadOnly.md
|
|||||||
docs/HealthCheckResult.md
|
docs/HealthCheckResult.md
|
||||||
docs/IsoscelesTriangle.md
|
docs/IsoscelesTriangle.md
|
||||||
docs/Mammal.md
|
docs/Mammal.md
|
||||||
|
docs/MammalAnyof.md
|
||||||
docs/MapTest.md
|
docs/MapTest.md
|
||||||
docs/MixedPropertiesAndAdditionalPropertiesClass.md
|
docs/MixedPropertiesAndAdditionalPropertiesClass.md
|
||||||
docs/Model200Response.md
|
docs/Model200Response.md
|
||||||
@ -203,6 +204,7 @@ src/main/java/org/openapitools/client/model/HasOnlyReadOnly.java
|
|||||||
src/main/java/org/openapitools/client/model/HealthCheckResult.java
|
src/main/java/org/openapitools/client/model/HealthCheckResult.java
|
||||||
src/main/java/org/openapitools/client/model/IsoscelesTriangle.java
|
src/main/java/org/openapitools/client/model/IsoscelesTriangle.java
|
||||||
src/main/java/org/openapitools/client/model/Mammal.java
|
src/main/java/org/openapitools/client/model/Mammal.java
|
||||||
|
src/main/java/org/openapitools/client/model/MammalAnyof.java
|
||||||
src/main/java/org/openapitools/client/model/MapTest.java
|
src/main/java/org/openapitools/client/model/MapTest.java
|
||||||
src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java
|
src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java
|
||||||
src/main/java/org/openapitools/client/model/Model200Response.java
|
src/main/java/org/openapitools/client/model/Model200Response.java
|
||||||
|
@ -220,6 +220,7 @@ Class | Method | HTTP request | Description
|
|||||||
- [HealthCheckResult](docs/HealthCheckResult.md)
|
- [HealthCheckResult](docs/HealthCheckResult.md)
|
||||||
- [IsoscelesTriangle](docs/IsoscelesTriangle.md)
|
- [IsoscelesTriangle](docs/IsoscelesTriangle.md)
|
||||||
- [Mammal](docs/Mammal.md)
|
- [Mammal](docs/Mammal.md)
|
||||||
|
- [MammalAnyof](docs/MammalAnyof.md)
|
||||||
- [MapTest](docs/MapTest.md)
|
- [MapTest](docs/MapTest.md)
|
||||||
- [MixedPropertiesAndAdditionalPropertiesClass](docs/MixedPropertiesAndAdditionalPropertiesClass.md)
|
- [MixedPropertiesAndAdditionalPropertiesClass](docs/MixedPropertiesAndAdditionalPropertiesClass.md)
|
||||||
- [Model200Response](docs/Model200Response.md)
|
- [Model200Response](docs/Model200Response.md)
|
||||||
|
@ -2298,6 +2298,13 @@ components:
|
|||||||
- $ref: '#/components/schemas/whale'
|
- $ref: '#/components/schemas/whale'
|
||||||
- $ref: '#/components/schemas/zebra'
|
- $ref: '#/components/schemas/zebra'
|
||||||
- $ref: '#/components/schemas/Pig'
|
- $ref: '#/components/schemas/Pig'
|
||||||
|
mammal_anyof:
|
||||||
|
anyOf:
|
||||||
|
- $ref: '#/components/schemas/whale'
|
||||||
|
- $ref: '#/components/schemas/zebra'
|
||||||
|
- $ref: '#/components/schemas/Pig'
|
||||||
|
discriminator:
|
||||||
|
propertyName: className
|
||||||
whale:
|
whale:
|
||||||
properties:
|
properties:
|
||||||
hasBaleen:
|
hasBaleen:
|
||||||
|
26
samples/client/petstore/java/okhttp-gson/docs/MammalAnyof.md
Normal file
26
samples/client/petstore/java/okhttp-gson/docs/MammalAnyof.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
|
||||||
|
|
||||||
|
# MammalAnyof
|
||||||
|
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
| Name | Type | Description | Notes |
|
||||||
|
|------------ | ------------- | ------------- | -------------|
|
||||||
|
|**hasBaleen** | **Boolean** | | [optional] |
|
||||||
|
|**hasTeeth** | **Boolean** | | [optional] |
|
||||||
|
|**className** | **String** | | |
|
||||||
|
|**type** | [**TypeEnum**](#TypeEnum) | | [optional] |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Enum: TypeEnum
|
||||||
|
|
||||||
|
| Name | Value |
|
||||||
|
|---- | -----|
|
||||||
|
| PLAINS | "plains" |
|
||||||
|
| MOUNTAIN | "mountain" |
|
||||||
|
| GREVYS | "grevys" |
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -117,6 +117,18 @@ public class JSON {
|
|||||||
return getClassByDiscriminator(classByDiscriminatorValue,
|
return getClassByDiscriminator(classByDiscriminatorValue,
|
||||||
getDiscriminatorValue(readElement, "className"));
|
getDiscriminatorValue(readElement, "className"));
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
.registerTypeSelector(org.openapitools.client.model.MammalAnyof.class, new TypeSelector<org.openapitools.client.model.MammalAnyof>() {
|
||||||
|
@Override
|
||||||
|
public Class<? extends org.openapitools.client.model.MammalAnyof> getClassForElement(JsonElement readElement) {
|
||||||
|
Map<String, Class> classByDiscriminatorValue = new HashMap<String, Class>();
|
||||||
|
classByDiscriminatorValue.put("Pig", org.openapitools.client.model.Pig.class);
|
||||||
|
classByDiscriminatorValue.put("whale", org.openapitools.client.model.Whale.class);
|
||||||
|
classByDiscriminatorValue.put("zebra", org.openapitools.client.model.Zebra.class);
|
||||||
|
classByDiscriminatorValue.put("mammal_anyof", org.openapitools.client.model.MammalAnyof.class);
|
||||||
|
return getClassByDiscriminator(classByDiscriminatorValue,
|
||||||
|
getDiscriminatorValue(readElement, "className"));
|
||||||
|
}
|
||||||
})
|
})
|
||||||
.registerTypeSelector(org.openapitools.client.model.NullableShape.class, new TypeSelector<org.openapitools.client.model.NullableShape>() {
|
.registerTypeSelector(org.openapitools.client.model.NullableShape.class, new TypeSelector<org.openapitools.client.model.NullableShape>() {
|
||||||
@Override
|
@Override
|
||||||
@ -277,6 +289,7 @@ public class JSON {
|
|||||||
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.HealthCheckResult.CustomTypeAdapterFactory());
|
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.HealthCheckResult.CustomTypeAdapterFactory());
|
||||||
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.IsoscelesTriangle.CustomTypeAdapterFactory());
|
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.IsoscelesTriangle.CustomTypeAdapterFactory());
|
||||||
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.Mammal.CustomTypeAdapterFactory());
|
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.Mammal.CustomTypeAdapterFactory());
|
||||||
|
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.MammalAnyof.CustomTypeAdapterFactory());
|
||||||
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.MapTest.CustomTypeAdapterFactory());
|
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.MapTest.CustomTypeAdapterFactory());
|
||||||
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.MixedPropertiesAndAdditionalPropertiesClass.CustomTypeAdapterFactory());
|
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.MixedPropertiesAndAdditionalPropertiesClass.CustomTypeAdapterFactory());
|
||||||
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.Model200Response.CustomTypeAdapterFactory());
|
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.Model200Response.CustomTypeAdapterFactory());
|
||||||
|
@ -0,0 +1,311 @@
|
|||||||
|
/*
|
||||||
|
* OpenAPI Petstore
|
||||||
|
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
||||||
|
*
|
||||||
|
* The version of the OpenAPI document: 1.0.0
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
|
* https://openapi-generator.tech
|
||||||
|
* Do not edit the class manually.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
package org.openapitools.client.model;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
import com.google.gson.TypeAdapter;
|
||||||
|
import com.google.gson.annotations.JsonAdapter;
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
import com.google.gson.stream.JsonReader;
|
||||||
|
import com.google.gson.stream.JsonWriter;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import org.openapitools.client.model.Pig;
|
||||||
|
import org.openapitools.client.model.Whale;
|
||||||
|
import org.openapitools.client.model.Zebra;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.lang.reflect.Type;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.GsonBuilder;
|
||||||
|
import com.google.gson.JsonParseException;
|
||||||
|
import com.google.gson.TypeAdapter;
|
||||||
|
import com.google.gson.TypeAdapterFactory;
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
import com.google.gson.JsonPrimitive;
|
||||||
|
import com.google.gson.annotations.JsonAdapter;
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
import com.google.gson.stream.JsonReader;
|
||||||
|
import com.google.gson.stream.JsonWriter;
|
||||||
|
import com.google.gson.JsonDeserializationContext;
|
||||||
|
import com.google.gson.JsonDeserializer;
|
||||||
|
import com.google.gson.JsonSerializationContext;
|
||||||
|
import com.google.gson.JsonSerializer;
|
||||||
|
import com.google.gson.JsonElement;
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
|
import com.google.gson.JsonArray;
|
||||||
|
import com.google.gson.JsonParseException;
|
||||||
|
|
||||||
|
import org.openapitools.client.JSON;
|
||||||
|
|
||||||
|
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0-SNAPSHOT")
|
||||||
|
public class MammalAnyof extends AbstractOpenApiSchema {
|
||||||
|
private static final Logger log = Logger.getLogger(MammalAnyof.class.getName());
|
||||||
|
|
||||||
|
public static class CustomTypeAdapterFactory implements TypeAdapterFactory {
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@Override
|
||||||
|
public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
|
||||||
|
if (!MammalAnyof.class.isAssignableFrom(type.getRawType())) {
|
||||||
|
return null; // this class only serializes 'MammalAnyof' and its subtypes
|
||||||
|
}
|
||||||
|
final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class);
|
||||||
|
final TypeAdapter<Whale> adapterWhale = gson.getDelegateAdapter(this, TypeToken.get(Whale.class));
|
||||||
|
final TypeAdapter<Zebra> adapterZebra = gson.getDelegateAdapter(this, TypeToken.get(Zebra.class));
|
||||||
|
final TypeAdapter<Pig> adapterPig = gson.getDelegateAdapter(this, TypeToken.get(Pig.class));
|
||||||
|
|
||||||
|
return (TypeAdapter<T>) new TypeAdapter<MammalAnyof>() {
|
||||||
|
@Override
|
||||||
|
public void write(JsonWriter out, MammalAnyof value) throws IOException {
|
||||||
|
if (value == null || value.getActualInstance() == null) {
|
||||||
|
elementAdapter.write(out, null);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// check if the actual instance is of the type `Whale`
|
||||||
|
if (value.getActualInstance() instanceof Whale) {
|
||||||
|
JsonElement element = adapterWhale.toJsonTree((Whale)value.getActualInstance());
|
||||||
|
elementAdapter.write(out, element);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// check if the actual instance is of the type `Zebra`
|
||||||
|
if (value.getActualInstance() instanceof Zebra) {
|
||||||
|
JsonElement element = adapterZebra.toJsonTree((Zebra)value.getActualInstance());
|
||||||
|
elementAdapter.write(out, element);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// check if the actual instance is of the type `Pig`
|
||||||
|
if (value.getActualInstance() instanceof Pig) {
|
||||||
|
JsonElement element = adapterPig.toJsonTree((Pig)value.getActualInstance());
|
||||||
|
elementAdapter.write(out, element);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: Pig, Whale, Zebra");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MammalAnyof read(JsonReader in) throws IOException {
|
||||||
|
Object deserialized = null;
|
||||||
|
JsonElement jsonElement = elementAdapter.read(in);
|
||||||
|
|
||||||
|
ArrayList<String> errorMessages = new ArrayList<>();
|
||||||
|
TypeAdapter actualAdapter = elementAdapter;
|
||||||
|
|
||||||
|
// deserialize Whale
|
||||||
|
try {
|
||||||
|
// validate the JSON object to see if any exception is thrown
|
||||||
|
Whale.validateJsonElement(jsonElement);
|
||||||
|
actualAdapter = adapterWhale;
|
||||||
|
MammalAnyof ret = new MammalAnyof();
|
||||||
|
ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement));
|
||||||
|
return ret;
|
||||||
|
} catch (Exception e) {
|
||||||
|
// deserialization failed, continue
|
||||||
|
errorMessages.add(String.format("Deserialization for Whale failed with `%s`.", e.getMessage()));
|
||||||
|
log.log(Level.FINER, "Input data does not match schema 'Whale'", e);
|
||||||
|
}
|
||||||
|
// deserialize Zebra
|
||||||
|
try {
|
||||||
|
// validate the JSON object to see if any exception is thrown
|
||||||
|
Zebra.validateJsonElement(jsonElement);
|
||||||
|
actualAdapter = adapterZebra;
|
||||||
|
MammalAnyof ret = new MammalAnyof();
|
||||||
|
ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement));
|
||||||
|
return ret;
|
||||||
|
} catch (Exception e) {
|
||||||
|
// deserialization failed, continue
|
||||||
|
errorMessages.add(String.format("Deserialization for Zebra failed with `%s`.", e.getMessage()));
|
||||||
|
log.log(Level.FINER, "Input data does not match schema 'Zebra'", e);
|
||||||
|
}
|
||||||
|
// deserialize Pig
|
||||||
|
try {
|
||||||
|
// validate the JSON object to see if any exception is thrown
|
||||||
|
Pig.validateJsonElement(jsonElement);
|
||||||
|
actualAdapter = adapterPig;
|
||||||
|
MammalAnyof ret = new MammalAnyof();
|
||||||
|
ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement));
|
||||||
|
return ret;
|
||||||
|
} catch (Exception e) {
|
||||||
|
// deserialization failed, continue
|
||||||
|
errorMessages.add(String.format("Deserialization for Pig failed with `%s`.", e.getMessage()));
|
||||||
|
log.log(Level.FINER, "Input data does not match schema 'Pig'", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new IOException(String.format("Failed deserialization for MammalAnyof: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString()));
|
||||||
|
}
|
||||||
|
}.nullSafe();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// store a list of schema names defined in anyOf
|
||||||
|
public static final Map<String, Class<?>> schemas = new HashMap<String, Class<?>>();
|
||||||
|
|
||||||
|
public MammalAnyof() {
|
||||||
|
super("anyOf", Boolean.FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
public MammalAnyof(Object o) {
|
||||||
|
super("anyOf", Boolean.FALSE);
|
||||||
|
setActualInstance(o);
|
||||||
|
}
|
||||||
|
|
||||||
|
static {
|
||||||
|
schemas.put("Whale", Whale.class);
|
||||||
|
schemas.put("Zebra", Zebra.class);
|
||||||
|
schemas.put("Pig", Pig.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Class<?>> getSchemas() {
|
||||||
|
return MammalAnyof.schemas;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the instance that matches the anyOf child schema, check
|
||||||
|
* the instance parameter is valid against the anyOf child schemas:
|
||||||
|
* Pig, Whale, Zebra
|
||||||
|
*
|
||||||
|
* It could be an instance of the 'anyOf' schemas.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void setActualInstance(Object instance) {
|
||||||
|
if (instance instanceof Whale) {
|
||||||
|
super.setActualInstance(instance);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (instance instanceof Zebra) {
|
||||||
|
super.setActualInstance(instance);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (instance instanceof Pig) {
|
||||||
|
super.setActualInstance(instance);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new RuntimeException("Invalid instance type. Must be Pig, Whale, Zebra");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the actual instance, which can be the following:
|
||||||
|
* Pig, Whale, Zebra
|
||||||
|
*
|
||||||
|
* @return The actual instance (Pig, Whale, Zebra)
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@Override
|
||||||
|
public Object getActualInstance() {
|
||||||
|
return super.getActualInstance();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the actual instance of `Whale`. If the actual instance is not `Whale`,
|
||||||
|
* the ClassCastException will be thrown.
|
||||||
|
*
|
||||||
|
* @return The actual instance of `Whale`
|
||||||
|
* @throws ClassCastException if the instance is not `Whale`
|
||||||
|
*/
|
||||||
|
public Whale getWhale() throws ClassCastException {
|
||||||
|
return (Whale)super.getActualInstance();
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Get the actual instance of `Zebra`. If the actual instance is not `Zebra`,
|
||||||
|
* the ClassCastException will be thrown.
|
||||||
|
*
|
||||||
|
* @return The actual instance of `Zebra`
|
||||||
|
* @throws ClassCastException if the instance is not `Zebra`
|
||||||
|
*/
|
||||||
|
public Zebra getZebra() throws ClassCastException {
|
||||||
|
return (Zebra)super.getActualInstance();
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Get the actual instance of `Pig`. If the actual instance is not `Pig`,
|
||||||
|
* the ClassCastException will be thrown.
|
||||||
|
*
|
||||||
|
* @return The actual instance of `Pig`
|
||||||
|
* @throws ClassCastException if the instance is not `Pig`
|
||||||
|
*/
|
||||||
|
public Pig getPig() throws ClassCastException {
|
||||||
|
return (Pig)super.getActualInstance();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validates the JSON Element and throws an exception if issues found
|
||||||
|
*
|
||||||
|
* @param jsonElement JSON Element
|
||||||
|
* @throws IOException if the JSON Element is invalid with respect to MammalAnyof
|
||||||
|
*/
|
||||||
|
public static void validateJsonElement(JsonElement jsonElement) throws IOException {
|
||||||
|
// validate anyOf schemas one by one
|
||||||
|
ArrayList<String> errorMessages = new ArrayList<>();
|
||||||
|
// validate the json string with Whale
|
||||||
|
try {
|
||||||
|
Whale.validateJsonElement(jsonElement);
|
||||||
|
return;
|
||||||
|
} catch (Exception e) {
|
||||||
|
errorMessages.add(String.format("Deserialization for Whale failed with `%s`.", e.getMessage()));
|
||||||
|
// continue to the next one
|
||||||
|
}
|
||||||
|
// validate the json string with Zebra
|
||||||
|
try {
|
||||||
|
Zebra.validateJsonElement(jsonElement);
|
||||||
|
return;
|
||||||
|
} catch (Exception e) {
|
||||||
|
errorMessages.add(String.format("Deserialization for Zebra failed with `%s`.", e.getMessage()));
|
||||||
|
// continue to the next one
|
||||||
|
}
|
||||||
|
// validate the json string with Pig
|
||||||
|
try {
|
||||||
|
Pig.validateJsonElement(jsonElement);
|
||||||
|
return;
|
||||||
|
} catch (Exception e) {
|
||||||
|
errorMessages.add(String.format("Deserialization for Pig failed with `%s`.", e.getMessage()));
|
||||||
|
// continue to the next one
|
||||||
|
}
|
||||||
|
throw new IOException(String.format("The JSON string is invalid for MammalAnyof with anyOf schemas: Pig, Whale, Zebra. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an instance of MammalAnyof given an JSON string
|
||||||
|
*
|
||||||
|
* @param jsonString JSON string
|
||||||
|
* @return An instance of MammalAnyof
|
||||||
|
* @throws IOException if the JSON string is invalid with respect to MammalAnyof
|
||||||
|
*/
|
||||||
|
public static MammalAnyof fromJson(String jsonString) throws IOException {
|
||||||
|
return JSON.getGson().fromJson(jsonString, MammalAnyof.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert an instance of MammalAnyof to an JSON string
|
||||||
|
*
|
||||||
|
* @return JSON string
|
||||||
|
*/
|
||||||
|
public String toJson() {
|
||||||
|
return JSON.getGson().toJson(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,75 @@
|
|||||||
|
/*
|
||||||
|
* OpenAPI Petstore
|
||||||
|
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
||||||
|
*
|
||||||
|
* The version of the OpenAPI document: 1.0.0
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
|
* https://openapi-generator.tech
|
||||||
|
* Do not edit the class manually.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
package org.openapitools.client.model;
|
||||||
|
|
||||||
|
import com.google.gson.TypeAdapter;
|
||||||
|
import com.google.gson.annotations.JsonAdapter;
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
import com.google.gson.stream.JsonReader;
|
||||||
|
import com.google.gson.stream.JsonWriter;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import org.openapitools.client.model.Pig;
|
||||||
|
import org.openapitools.client.model.Whale;
|
||||||
|
import org.openapitools.client.model.Zebra;
|
||||||
|
import org.junit.jupiter.api.Disabled;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Model tests for MammalAnyof
|
||||||
|
*/
|
||||||
|
public class MammalAnyofTest {
|
||||||
|
private final MammalAnyof model = new MammalAnyof();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Model tests for MammalAnyof
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testMammalAnyof() {
|
||||||
|
// TODO: test MammalAnyof
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test the property 'hasBaleen'
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void hasBaleenTest() {
|
||||||
|
// TODO: test hasBaleen
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test the property 'hasTeeth'
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void hasTeethTest() {
|
||||||
|
// TODO: test hasTeeth
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test the property 'className'
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void classNameTest() {
|
||||||
|
// TODO: test className
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test the property 'type'
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void typeTest() {
|
||||||
|
// TODO: test type
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -910,6 +910,46 @@ export interface List {
|
|||||||
*/
|
*/
|
||||||
export type Mammal = Pig | Whale | Zebra;
|
export type Mammal = Pig | Whale | Zebra;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @export
|
||||||
|
* @interface MammalAnyof
|
||||||
|
*/
|
||||||
|
export interface MammalAnyof {
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @type {boolean}
|
||||||
|
* @memberof MammalAnyof
|
||||||
|
*/
|
||||||
|
'hasBaleen'?: boolean;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @type {boolean}
|
||||||
|
* @memberof MammalAnyof
|
||||||
|
*/
|
||||||
|
'hasTeeth'?: boolean;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @type {string}
|
||||||
|
* @memberof MammalAnyof
|
||||||
|
*/
|
||||||
|
'className': string;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @type {string}
|
||||||
|
* @memberof MammalAnyof
|
||||||
|
*/
|
||||||
|
'type'?: MammalAnyofTypeEnum;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const MammalAnyofTypeEnum = {
|
||||||
|
Plains: 'plains',
|
||||||
|
Mountain: 'mountain',
|
||||||
|
Grevys: 'grevys'
|
||||||
|
} as const;
|
||||||
|
|
||||||
|
export type MammalAnyofTypeEnum = typeof MammalAnyofTypeEnum[keyof typeof MammalAnyofTypeEnum];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @export
|
* @export
|
||||||
|
@ -46,6 +46,7 @@ docs/HasOnlyReadOnly.md
|
|||||||
docs/HealthCheckResult.md
|
docs/HealthCheckResult.md
|
||||||
docs/IsoscelesTriangle.md
|
docs/IsoscelesTriangle.md
|
||||||
docs/Mammal.md
|
docs/Mammal.md
|
||||||
|
docs/MammalAnyof.md
|
||||||
docs/MapTest.md
|
docs/MapTest.md
|
||||||
docs/MixedPropertiesAndAdditionalPropertiesClass.md
|
docs/MixedPropertiesAndAdditionalPropertiesClass.md
|
||||||
docs/Model200Response.md
|
docs/Model200Response.md
|
||||||
@ -158,6 +159,7 @@ src/main/java/org/openapitools/client/model/HasOnlyReadOnly.java
|
|||||||
src/main/java/org/openapitools/client/model/HealthCheckResult.java
|
src/main/java/org/openapitools/client/model/HealthCheckResult.java
|
||||||
src/main/java/org/openapitools/client/model/IsoscelesTriangle.java
|
src/main/java/org/openapitools/client/model/IsoscelesTriangle.java
|
||||||
src/main/java/org/openapitools/client/model/Mammal.java
|
src/main/java/org/openapitools/client/model/Mammal.java
|
||||||
|
src/main/java/org/openapitools/client/model/MammalAnyof.java
|
||||||
src/main/java/org/openapitools/client/model/MapTest.java
|
src/main/java/org/openapitools/client/model/MapTest.java
|
||||||
src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java
|
src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java
|
||||||
src/main/java/org/openapitools/client/model/Model200Response.java
|
src/main/java/org/openapitools/client/model/Model200Response.java
|
||||||
|
@ -224,6 +224,7 @@ Class | Method | HTTP request | Description
|
|||||||
- [HealthCheckResult](docs/HealthCheckResult.md)
|
- [HealthCheckResult](docs/HealthCheckResult.md)
|
||||||
- [IsoscelesTriangle](docs/IsoscelesTriangle.md)
|
- [IsoscelesTriangle](docs/IsoscelesTriangle.md)
|
||||||
- [Mammal](docs/Mammal.md)
|
- [Mammal](docs/Mammal.md)
|
||||||
|
- [MammalAnyof](docs/MammalAnyof.md)
|
||||||
- [MapTest](docs/MapTest.md)
|
- [MapTest](docs/MapTest.md)
|
||||||
- [MixedPropertiesAndAdditionalPropertiesClass](docs/MixedPropertiesAndAdditionalPropertiesClass.md)
|
- [MixedPropertiesAndAdditionalPropertiesClass](docs/MixedPropertiesAndAdditionalPropertiesClass.md)
|
||||||
- [Model200Response](docs/Model200Response.md)
|
- [Model200Response](docs/Model200Response.md)
|
||||||
|
@ -2059,6 +2059,13 @@ components:
|
|||||||
- $ref: '#/components/schemas/whale'
|
- $ref: '#/components/schemas/whale'
|
||||||
- $ref: '#/components/schemas/zebra'
|
- $ref: '#/components/schemas/zebra'
|
||||||
- $ref: '#/components/schemas/Pig'
|
- $ref: '#/components/schemas/Pig'
|
||||||
|
mammal_anyof:
|
||||||
|
anyOf:
|
||||||
|
- $ref: '#/components/schemas/whale'
|
||||||
|
- $ref: '#/components/schemas/zebra'
|
||||||
|
- $ref: '#/components/schemas/Pig'
|
||||||
|
discriminator:
|
||||||
|
propertyName: className
|
||||||
whale:
|
whale:
|
||||||
properties:
|
properties:
|
||||||
hasBaleen:
|
hasBaleen:
|
||||||
|
@ -0,0 +1,46 @@
|
|||||||
|
|
||||||
|
|
||||||
|
# MammalAnyof
|
||||||
|
|
||||||
|
## anyOf schemas
|
||||||
|
* [Pig](Pig.md)
|
||||||
|
* [Whale](Whale.md)
|
||||||
|
* [Zebra](Zebra.md)
|
||||||
|
|
||||||
|
## Example
|
||||||
|
```java
|
||||||
|
// Import classes:
|
||||||
|
import org.openapitools.client.model.MammalAnyof;
|
||||||
|
import org.openapitools.client.model.Pig;
|
||||||
|
import org.openapitools.client.model.Whale;
|
||||||
|
import org.openapitools.client.model.Zebra;
|
||||||
|
|
||||||
|
public class Example {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
MammalAnyof exampleMammalAnyof = new MammalAnyof();
|
||||||
|
|
||||||
|
// create a new Pig
|
||||||
|
Pig examplePig = new Pig();
|
||||||
|
// set MammalAnyof to Pig
|
||||||
|
exampleMammalAnyof.setActualInstance(examplePig);
|
||||||
|
// to get back the Pig set earlier
|
||||||
|
Pig testPig = (Pig) exampleMammalAnyof.getActualInstance();
|
||||||
|
|
||||||
|
// create a new Whale
|
||||||
|
Whale exampleWhale = new Whale();
|
||||||
|
// set MammalAnyof to Whale
|
||||||
|
exampleMammalAnyof.setActualInstance(exampleWhale);
|
||||||
|
// to get back the Whale set earlier
|
||||||
|
Whale testWhale = (Whale) exampleMammalAnyof.getActualInstance();
|
||||||
|
|
||||||
|
// create a new Zebra
|
||||||
|
Zebra exampleZebra = new Zebra();
|
||||||
|
// set MammalAnyof to Zebra
|
||||||
|
exampleMammalAnyof.setActualInstance(exampleZebra);
|
||||||
|
// to get back the Zebra set earlier
|
||||||
|
Zebra testZebra = (Zebra) exampleMammalAnyof.getActualInstance();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
@ -0,0 +1,318 @@
|
|||||||
|
/*
|
||||||
|
* OpenAPI Petstore
|
||||||
|
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
||||||
|
*
|
||||||
|
* The version of the OpenAPI document: 1.0.0
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
|
* https://openapi-generator.tech
|
||||||
|
* Do not edit the class manually.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
package org.openapitools.client.model;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonAnyGetter;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonAnySetter;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
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 com.fasterxml.jackson.annotation.JsonValue;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import org.openapitools.client.model.Pig;
|
||||||
|
import org.openapitools.client.model.Whale;
|
||||||
|
import org.openapitools.client.model.Zebra;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
|
||||||
|
import org.openapitools.client.JSON;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.ws.rs.core.GenericType;
|
||||||
|
import javax.ws.rs.core.Response;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashSet;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonGenerator;
|
||||||
|
import com.fasterxml.jackson.core.JsonParser;
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
|
import com.fasterxml.jackson.databind.DeserializationContext;
|
||||||
|
import com.fasterxml.jackson.databind.JsonMappingException;
|
||||||
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
|
import com.fasterxml.jackson.databind.SerializerProvider;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
|
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
|
||||||
|
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
|
||||||
|
import org.openapitools.client.JSON;
|
||||||
|
|
||||||
|
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.7.0-SNAPSHOT")
|
||||||
|
@JsonDeserialize(using=MammalAnyof.MammalAnyofDeserializer.class)
|
||||||
|
@JsonSerialize(using = MammalAnyof.MammalAnyofSerializer.class)
|
||||||
|
public class MammalAnyof extends AbstractOpenApiSchema {
|
||||||
|
private static final Logger log = Logger.getLogger(MammalAnyof.class.getName());
|
||||||
|
|
||||||
|
public static class MammalAnyofSerializer extends StdSerializer<MammalAnyof> {
|
||||||
|
public MammalAnyofSerializer(Class<MammalAnyof> t) {
|
||||||
|
super(t);
|
||||||
|
}
|
||||||
|
|
||||||
|
public MammalAnyofSerializer() {
|
||||||
|
this(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void serialize(MammalAnyof value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
|
||||||
|
jgen.writeObject(value.getActualInstance());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class MammalAnyofDeserializer extends StdDeserializer<MammalAnyof> {
|
||||||
|
public MammalAnyofDeserializer() {
|
||||||
|
this(MammalAnyof.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public MammalAnyofDeserializer(Class<?> vc) {
|
||||||
|
super(vc);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MammalAnyof deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException {
|
||||||
|
JsonNode tree = jp.readValueAsTree();
|
||||||
|
|
||||||
|
Object deserialized = null;
|
||||||
|
Class<?> cls = JSON.getClassForElement(tree, new MammalAnyof().getClass());
|
||||||
|
if (cls != null) {
|
||||||
|
// When the OAS schema includes a discriminator, use the discriminator value to
|
||||||
|
// discriminate the anyOf schemas.
|
||||||
|
// Get the discriminator mapping value to get the class.
|
||||||
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(cls);
|
||||||
|
MammalAnyof ret = new MammalAnyof();
|
||||||
|
ret.setActualInstance(deserialized);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
// deserialize Pig
|
||||||
|
try {
|
||||||
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(Pig.class);
|
||||||
|
MammalAnyof ret = new MammalAnyof();
|
||||||
|
ret.setActualInstance(deserialized);
|
||||||
|
return ret;
|
||||||
|
} catch (Exception e) {
|
||||||
|
// deserialization failed, continue, log to help debugging
|
||||||
|
log.log(Level.FINER, "Input data does not match 'MammalAnyof'", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
// deserialize Whale
|
||||||
|
try {
|
||||||
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(Whale.class);
|
||||||
|
MammalAnyof ret = new MammalAnyof();
|
||||||
|
ret.setActualInstance(deserialized);
|
||||||
|
return ret;
|
||||||
|
} catch (Exception e) {
|
||||||
|
// deserialization failed, continue, log to help debugging
|
||||||
|
log.log(Level.FINER, "Input data does not match 'MammalAnyof'", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
// deserialize Zebra
|
||||||
|
try {
|
||||||
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(Zebra.class);
|
||||||
|
MammalAnyof ret = new MammalAnyof();
|
||||||
|
ret.setActualInstance(deserialized);
|
||||||
|
return ret;
|
||||||
|
} catch (Exception e) {
|
||||||
|
// deserialization failed, continue, log to help debugging
|
||||||
|
log.log(Level.FINER, "Input data does not match 'MammalAnyof'", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new IOException(String.format("Failed deserialization for MammalAnyof: no match found"));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle deserialization of the 'null' value.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public MammalAnyof getNullValue(DeserializationContext ctxt) throws JsonMappingException {
|
||||||
|
throw new JsonMappingException(ctxt.getParser(), "MammalAnyof cannot be null");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// store a list of schema names defined in anyOf
|
||||||
|
public static final Map<String, GenericType> schemas = new HashMap<>();
|
||||||
|
|
||||||
|
public MammalAnyof() {
|
||||||
|
super("anyOf", Boolean.FALSE);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* A container for additional, undeclared properties.
|
||||||
|
* This is a holder for any undeclared properties as specified with
|
||||||
|
* the 'additionalProperties' keyword in the OAS document.
|
||||||
|
*/
|
||||||
|
private Map<String, Object> additionalProperties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the additional (undeclared) property with the specified name and value.
|
||||||
|
* If the property does not already exist, create it otherwise replace it.
|
||||||
|
*/
|
||||||
|
@JsonAnySetter
|
||||||
|
public MammalAnyof putAdditionalProperty(String key, Object value) {
|
||||||
|
if (this.additionalProperties == null) {
|
||||||
|
this.additionalProperties = new HashMap<>();
|
||||||
|
}
|
||||||
|
this.additionalProperties.put(key, value);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the additional (undeclared) property.
|
||||||
|
*/
|
||||||
|
@JsonAnyGetter
|
||||||
|
public Map<String, Object> getAdditionalProperties() {
|
||||||
|
return additionalProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the additional (undeclared) property with the specified name.
|
||||||
|
*/
|
||||||
|
public Object getAdditionalProperty(String key) {
|
||||||
|
if (this.additionalProperties == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return this.additionalProperties.get(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return true if this mammal_anyof object is equal to o.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
return super.equals(o) && Objects.equals(this.additionalProperties, ((MammalAnyof)o).additionalProperties);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(getActualInstance(), isNullable(), getSchemaType(), additionalProperties);
|
||||||
|
}
|
||||||
|
public MammalAnyof(Pig o) {
|
||||||
|
super("anyOf", Boolean.FALSE);
|
||||||
|
setActualInstance(o);
|
||||||
|
}
|
||||||
|
|
||||||
|
public MammalAnyof(Whale o) {
|
||||||
|
super("anyOf", Boolean.FALSE);
|
||||||
|
setActualInstance(o);
|
||||||
|
}
|
||||||
|
|
||||||
|
public MammalAnyof(Zebra o) {
|
||||||
|
super("anyOf", Boolean.FALSE);
|
||||||
|
setActualInstance(o);
|
||||||
|
}
|
||||||
|
|
||||||
|
static {
|
||||||
|
schemas.put("Pig", new GenericType<Pig>() {
|
||||||
|
});
|
||||||
|
schemas.put("Whale", new GenericType<Whale>() {
|
||||||
|
});
|
||||||
|
schemas.put("Zebra", new GenericType<Zebra>() {
|
||||||
|
});
|
||||||
|
JSON.registerDescendants(MammalAnyof.class, Collections.unmodifiableMap(schemas));
|
||||||
|
// Initialize and register the discriminator mappings.
|
||||||
|
Map<String, Class<?>> mappings = new HashMap<>();
|
||||||
|
mappings.put("Pig", Pig.class);
|
||||||
|
mappings.put("whale", Whale.class);
|
||||||
|
mappings.put("zebra", Zebra.class);
|
||||||
|
mappings.put("mammal_anyof", MammalAnyof.class);
|
||||||
|
JSON.registerDiscriminator(MammalAnyof.class, "className", mappings);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, GenericType> getSchemas() {
|
||||||
|
return MammalAnyof.schemas;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the instance that matches the anyOf child schema, check
|
||||||
|
* the instance parameter is valid against the anyOf child schemas:
|
||||||
|
* Pig, Whale, Zebra
|
||||||
|
*
|
||||||
|
* It could be an instance of the 'anyOf' schemas.
|
||||||
|
* The anyOf child schemas may themselves be a composed schema (allOf, anyOf, anyOf).
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void setActualInstance(Object instance) {
|
||||||
|
if (JSON.isInstanceOf(Pig.class, instance, new HashSet<>())) {
|
||||||
|
super.setActualInstance(instance);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (JSON.isInstanceOf(Whale.class, instance, new HashSet<>())) {
|
||||||
|
super.setActualInstance(instance);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (JSON.isInstanceOf(Zebra.class, instance, new HashSet<>())) {
|
||||||
|
super.setActualInstance(instance);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new RuntimeException("Invalid instance type. Must be Pig, Whale, Zebra");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the actual instance, which can be the following:
|
||||||
|
* Pig, Whale, Zebra
|
||||||
|
*
|
||||||
|
* @return The actual instance (Pig, Whale, Zebra)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Object getActualInstance() {
|
||||||
|
return super.getActualInstance();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the actual instance of `Pig`. If the actual instance is not `Pig`,
|
||||||
|
* the ClassCastException will be thrown.
|
||||||
|
*
|
||||||
|
* @return The actual instance of `Pig`
|
||||||
|
* @throws ClassCastException if the instance is not `Pig`
|
||||||
|
*/
|
||||||
|
public Pig getPig() throws ClassCastException {
|
||||||
|
return (Pig)super.getActualInstance();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the actual instance of `Whale`. If the actual instance is not `Whale`,
|
||||||
|
* the ClassCastException will be thrown.
|
||||||
|
*
|
||||||
|
* @return The actual instance of `Whale`
|
||||||
|
* @throws ClassCastException if the instance is not `Whale`
|
||||||
|
*/
|
||||||
|
public Whale getWhale() throws ClassCastException {
|
||||||
|
return (Whale)super.getActualInstance();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the actual instance of `Zebra`. If the actual instance is not `Zebra`,
|
||||||
|
* the ClassCastException will be thrown.
|
||||||
|
*
|
||||||
|
* @return The actual instance of `Zebra`
|
||||||
|
* @throws ClassCastException if the instance is not `Zebra`
|
||||||
|
*/
|
||||||
|
public Zebra getZebra() throws ClassCastException {
|
||||||
|
return (Zebra)super.getActualInstance();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,79 @@
|
|||||||
|
/*
|
||||||
|
* OpenAPI Petstore
|
||||||
|
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
||||||
|
*
|
||||||
|
* The version of the OpenAPI document: 1.0.0
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
|
* https://openapi-generator.tech
|
||||||
|
* Do not edit the class manually.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
package org.openapitools.client.model;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
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 com.fasterxml.jackson.annotation.JsonValue;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import org.openapitools.client.model.Pig;
|
||||||
|
import org.openapitools.client.model.Whale;
|
||||||
|
import org.openapitools.client.model.Zebra;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Assertions;
|
||||||
|
import org.junit.jupiter.api.Disabled;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Model tests for MammalAnyof
|
||||||
|
*/
|
||||||
|
public class MammalAnyofTest {
|
||||||
|
private final MammalAnyof model = new MammalAnyof();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Model tests for MammalAnyof
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testMammalAnyof() {
|
||||||
|
// TODO: test MammalAnyof
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test the property 'hasBaleen'
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void hasBaleenTest() {
|
||||||
|
// TODO: test hasBaleen
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test the property 'hasTeeth'
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void hasTeethTest() {
|
||||||
|
// TODO: test hasTeeth
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test the property 'className'
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void classNameTest() {
|
||||||
|
// TODO: test className
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test the property 'type'
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void typeTest() {
|
||||||
|
// TODO: test type
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user