forked from loafle/openapi-generator-original
[Java] Sync jersey2 jersey3 template (#18281)
* sync jersey2 and 3 templates * add deprecated * update samples
This commit is contained in:
@@ -80,13 +80,22 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
|
|||||||
{{/vendorExtensions.x-field-extra-annotation}}
|
{{/vendorExtensions.x-field-extra-annotation}}
|
||||||
{{#vendorExtensions.x-is-jackson-optional-nullable}}
|
{{#vendorExtensions.x-is-jackson-optional-nullable}}
|
||||||
{{#isContainer}}
|
{{#isContainer}}
|
||||||
|
{{#deprecated}}
|
||||||
|
@Deprecated
|
||||||
|
{{/deprecated}}
|
||||||
private JsonNullable<{{{datatypeWithEnum}}}> {{name}} = JsonNullable.<{{{datatypeWithEnum}}}>undefined();
|
private JsonNullable<{{{datatypeWithEnum}}}> {{name}} = JsonNullable.<{{{datatypeWithEnum}}}>undefined();
|
||||||
{{/isContainer}}
|
{{/isContainer}}
|
||||||
{{^isContainer}}
|
{{^isContainer}}
|
||||||
|
{{#deprecated}}
|
||||||
|
@Deprecated
|
||||||
|
{{/deprecated}}
|
||||||
private JsonNullable<{{{datatypeWithEnum}}}> {{name}} = JsonNullable.<{{{datatypeWithEnum}}}>{{#defaultValue}}of({{{.}}}){{/defaultValue}}{{^defaultValue}}undefined(){{/defaultValue}};
|
private JsonNullable<{{{datatypeWithEnum}}}> {{name}} = JsonNullable.<{{{datatypeWithEnum}}}>{{#defaultValue}}of({{{.}}}){{/defaultValue}}{{^defaultValue}}undefined(){{/defaultValue}};
|
||||||
{{/isContainer}}
|
{{/isContainer}}
|
||||||
{{/vendorExtensions.x-is-jackson-optional-nullable}}
|
{{/vendorExtensions.x-is-jackson-optional-nullable}}
|
||||||
{{^vendorExtensions.x-is-jackson-optional-nullable}}
|
{{^vendorExtensions.x-is-jackson-optional-nullable}}
|
||||||
|
{{#deprecated}}
|
||||||
|
@Deprecated
|
||||||
|
{{/deprecated}}
|
||||||
private {{{datatypeWithEnum}}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};
|
private {{{datatypeWithEnum}}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};
|
||||||
{{/vendorExtensions.x-is-jackson-optional-nullable}}
|
{{/vendorExtensions.x-is-jackson-optional-nullable}}
|
||||||
|
|
||||||
@@ -116,6 +125,9 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
|
|||||||
));
|
));
|
||||||
|
|
||||||
{{/vendorExtensions.x-enum-as-string}}
|
{{/vendorExtensions.x-enum-as-string}}
|
||||||
|
{{#deprecated}}
|
||||||
|
@Deprecated
|
||||||
|
{{/deprecated}}
|
||||||
public {{classname}} {{name}}({{{datatypeWithEnum}}} {{name}}) {
|
public {{classname}} {{name}}({{{datatypeWithEnum}}} {{name}}) {
|
||||||
{{#vendorExtensions.x-enum-as-string}}
|
{{#vendorExtensions.x-enum-as-string}}
|
||||||
if (!{{{nameInSnakeCase}}}_VALUES.contains({{name}})) {
|
if (!{{{nameInSnakeCase}}}_VALUES.contains({{name}})) {
|
||||||
@@ -256,6 +268,9 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
|
|||||||
{{/vendorExtensions.x-is-jackson-optional-nullable}}
|
{{/vendorExtensions.x-is-jackson-optional-nullable}}
|
||||||
|
|
||||||
{{^isReadOnly}}
|
{{^isReadOnly}}
|
||||||
|
{{#deprecated}}
|
||||||
|
@Deprecated
|
||||||
|
{{/deprecated}}
|
||||||
{{#vendorExtensions.x-setter-extra-annotation}} {{{vendorExtensions.x-setter-extra-annotation}}}
|
{{#vendorExtensions.x-setter-extra-annotation}} {{{vendorExtensions.x-setter-extra-annotation}}}
|
||||||
{{/vendorExtensions.x-setter-extra-annotation}}{{#jackson}}{{^vendorExtensions.x-is-jackson-optional-nullable}}{{> jackson_annotations}}{{/vendorExtensions.x-is-jackson-optional-nullable}}{{/jackson}} public void {{setter}}({{{datatypeWithEnum}}} {{name}}) {
|
{{/vendorExtensions.x-setter-extra-annotation}}{{#jackson}}{{^vendorExtensions.x-is-jackson-optional-nullable}}{{> jackson_annotations}}{{/vendorExtensions.x-is-jackson-optional-nullable}}{{/jackson}} public void {{setter}}({{{datatypeWithEnum}}} {{name}}) {
|
||||||
{{#vendorExtensions.x-enum-as-string}}
|
{{#vendorExtensions.x-enum-as-string}}
|
||||||
|
|||||||
@@ -119,13 +119,13 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
|
|||||||
protected Integer serverIndex = 0;
|
protected Integer serverIndex = 0;
|
||||||
protected Map<String, String> serverVariables = null;
|
protected Map<String, String> serverVariables = null;
|
||||||
{{^hasOperationServers}}
|
{{^hasOperationServers}}
|
||||||
protected Map<String, List<ServerConfiguration>> operationServers = new LinkedHashMap<>();
|
protected Map<String, List<ServerConfiguration>> operationServers = new HashMap<>();
|
||||||
{{/hasOperationServers}}
|
{{/hasOperationServers}}
|
||||||
{{#hasOperationServers}}
|
{{#hasOperationServers}}
|
||||||
protected Map<String, List<ServerConfiguration>> operationServers;
|
protected Map<String, List<ServerConfiguration>> operationServers;
|
||||||
|
|
||||||
{
|
{
|
||||||
Map<String, List<ServerConfiguration>> operationServers = new LinkedHashMap<>();
|
Map<String, List<ServerConfiguration>> operationServers = new HashMap<>();
|
||||||
{{#apiInfo}}
|
{{#apiInfo}}
|
||||||
{{#apis}}
|
{{#apis}}
|
||||||
{{#operations}}
|
{{#operations}}
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im
|
|||||||
{{#useOneOfDiscriminatorLookup}}
|
{{#useOneOfDiscriminatorLookup}}
|
||||||
{{#discriminator}}
|
{{#discriminator}}
|
||||||
{{classname}} new{{classname}} = new {{classname}}();
|
{{classname}} new{{classname}} = new {{classname}}();
|
||||||
Map<String,Object> result2 = tree.traverse(jp.getCodec()).readValueAs(new TypeReference<Map<String, Object>>() {});
|
Map<String, Object> result2 = tree.traverse(jp.getCodec()).readValueAs(new TypeReference<Map<String, Object>>() {});
|
||||||
String discriminatorValue = (String)result2.get("{{{propertyBaseName}}}");
|
String discriminatorValue = (String)result2.get("{{{propertyBaseName}}}");
|
||||||
switch (discriminatorValue) {
|
switch (discriminatorValue) {
|
||||||
{{#mappedModels}}
|
{{#mappedModels}}
|
||||||
@@ -78,37 +78,74 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im
|
|||||||
boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS);
|
boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS);
|
||||||
int match = 0;
|
int match = 0;
|
||||||
JsonToken token = tree.traverse(jp.getCodec()).nextToken();
|
JsonToken token = tree.traverse(jp.getCodec()).nextToken();
|
||||||
|
{{#composedSchemas}}
|
||||||
{{#oneOf}}
|
{{#oneOf}}
|
||||||
// deserialize {{{.}}}
|
// deserialize {{{dataType}}}{{#isNullable}} (nullable){{/isNullable}}
|
||||||
try {
|
try {
|
||||||
|
{{^isArray}}
|
||||||
boolean attemptParsing = true;
|
boolean attemptParsing = true;
|
||||||
// ensure that we respect type coercion as set on the client ObjectMapper
|
{{#isPrimitiveType}}
|
||||||
if ({{{.}}}.class.equals(Integer.class) || {{{.}}}.class.equals(Long.class) || {{{.}}}.class.equals(Float.class) || {{{.}}}.class.equals(Double.class) || {{{.}}}.class.equals(Boolean.class) || {{{.}}}.class.equals(String.class)) {
|
attemptParsing = typeCoercion; //respect type coercion setting
|
||||||
attemptParsing = typeCoercion;
|
if (!attemptParsing) {
|
||||||
if (!attemptParsing) {
|
{{#isString}}
|
||||||
attemptParsing |= (({{{.}}}.class.equals(Integer.class) || {{{.}}}.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
|
attemptParsing |= (token == JsonToken.VALUE_STRING);
|
||||||
attemptParsing |= (({{{.}}}.class.equals(Float.class) || {{{.}}}.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
|
{{/isString}}
|
||||||
attemptParsing |= ({{{.}}}.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
|
{{#isInteger}}
|
||||||
attemptParsing |= ({{{.}}}.class.equals(String.class) && token == JsonToken.VALUE_STRING);
|
attemptParsing |= (token == JsonToken.VALUE_NUMBER_INT);
|
||||||
{{#isNullable}}
|
{{/isInteger}}
|
||||||
attemptParsing |= (token == JsonToken.VALUE_NULL);
|
{{#isLong}}
|
||||||
{{/isNullable}}
|
attemptParsing |= (token == JsonToken.VALUE_NUMBER_INT);
|
||||||
}
|
{{/isLong}}
|
||||||
|
{{#isShort}}
|
||||||
|
attemptParsing |= (token == JsonToken.VALUE_NUMBER_INT);
|
||||||
|
{{/isShort}}
|
||||||
|
{{#isFloat}}
|
||||||
|
attemptParsing |= (token == JsonToken.VALUE_NUMBER_FLOAT);
|
||||||
|
{{/isFloat}}
|
||||||
|
{{#isDouble}}
|
||||||
|
attemptParsing |= (token == JsonToken.VALUE_NUMBER_FLOAT);
|
||||||
|
{{/isDouble}}
|
||||||
|
{{#isNumber}}
|
||||||
|
attemptParsing |= (token == JsonToken.VALUE_NUMBER_FLOAT);
|
||||||
|
{{/isNumber}}
|
||||||
|
{{#isDecimal}}
|
||||||
|
attemptParsing |= (token == JsonToken.VALUE_NUMBER_FLOAT);
|
||||||
|
{{/isDecimal}}
|
||||||
|
{{#isBoolean}}
|
||||||
|
attemptParsing |= (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
|
||||||
|
{{/isBoolean}}
|
||||||
|
{{#isNullable}}
|
||||||
|
attemptParsing |= (token == JsonToken.VALUE_NULL);
|
||||||
|
{{/isNullable}}
|
||||||
}
|
}
|
||||||
|
{{/isPrimitiveType}}
|
||||||
if (attemptParsing) {
|
if (attemptParsing) {
|
||||||
deserialized = tree.traverse(jp.getCodec()).readValueAs({{{.}}}.class);
|
deserialized = tree.traverse(jp.getCodec()).readValueAs({{{dataType}}}.class);
|
||||||
// TODO: there is no validation against JSON schema constraints
|
// TODO: there is no validation against JSON schema constraints
|
||||||
// (min, max, enum, pattern...), this does not perform a strict JSON
|
// (min, max, enum, pattern...), this does not perform a strict JSON
|
||||||
// validation, which means the 'match' count may be higher than it should be.
|
// validation, which means the 'match' count may be higher than it should be.
|
||||||
match++;
|
match++;
|
||||||
log.log(Level.FINER, "Input data matches schema '{{{.}}}'");
|
log.log(Level.FINER, "Input data matches schema '{{{dataType}}}'");
|
||||||
}
|
}
|
||||||
|
{{/isArray}}
|
||||||
|
{{#isArray}}
|
||||||
|
if (token == JsonToken.START_ARRAY) {
|
||||||
|
final TypeReference<{{{dataType}}}> ref = new TypeReference<{{{dataType}}}>(){};
|
||||||
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(ref);
|
||||||
|
// TODO: there is no validation against JSON schema constraints
|
||||||
|
// (min, max, enum, pattern...), this does not perform a strict JSON
|
||||||
|
// validation, which means the 'match' count may be higher than it should be.
|
||||||
|
match++;
|
||||||
|
log.log(Level.FINER, "Input data matches schema '{{{dataType}}}'");
|
||||||
|
}
|
||||||
|
{{/isArray}}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
// deserialization failed, continue
|
// deserialization failed, continue
|
||||||
log.log(Level.FINER, "Input data does not match schema '{{{.}}}'", e);
|
log.log(Level.FINER, "Input data does not match schema '{{{dataType}}}'", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
{{/oneOf}}
|
{{/oneOf}}
|
||||||
|
{{/composedSchemas}}
|
||||||
if (match == 1) {
|
if (match == 1) {
|
||||||
{{classname}} ret = new {{classname}}();
|
{{classname}} ret = new {{classname}}();
|
||||||
ret.setActualInstance(deserialized);
|
ret.setActualInstance(deserialized);
|
||||||
@@ -152,13 +189,17 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im
|
|||||||
return Objects.hash(getActualInstance(), isNullable(), getSchemaType(), additionalProperties);
|
return Objects.hash(getActualInstance(), isNullable(), getSchemaType(), additionalProperties);
|
||||||
}
|
}
|
||||||
{{/additionalPropertiesType}}
|
{{/additionalPropertiesType}}
|
||||||
|
{{#composedSchemas}}
|
||||||
{{#oneOf}}
|
{{#oneOf}}
|
||||||
public {{classname}}({{{.}}} o) {
|
{{^vendorExtensions.x-duplicated-data-type}}
|
||||||
|
public {{classname}}({{{baseType}}} o) {
|
||||||
super("oneOf", {{#isNullable}}Boolean.TRUE{{/isNullable}}{{^isNullable}}Boolean.FALSE{{/isNullable}});
|
super("oneOf", {{#isNullable}}Boolean.TRUE{{/isNullable}}{{^isNullable}}Boolean.FALSE{{/isNullable}});
|
||||||
setActualInstance(o);
|
setActualInstance(o);
|
||||||
}
|
}
|
||||||
|
{{/vendorExtensions.x-duplicated-data-type}}
|
||||||
|
|
||||||
{{/oneOf}}
|
{{/oneOf}}
|
||||||
|
{{/composedSchemas}}
|
||||||
static {
|
static {
|
||||||
{{#oneOf}}
|
{{#oneOf}}
|
||||||
schemas.put("{{{.}}}", new GenericType<{{{.}}}>() {
|
schemas.put("{{{.}}}", new GenericType<{{{.}}}>() {
|
||||||
@@ -198,13 +239,17 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im
|
|||||||
}
|
}
|
||||||
|
|
||||||
{{/isNullable}}
|
{{/isNullable}}
|
||||||
|
{{#composedSchemas}}
|
||||||
{{#oneOf}}
|
{{#oneOf}}
|
||||||
if (JSON.isInstanceOf({{{.}}}.class, instance, new HashSet<>())) {
|
{{^vendorExtensions.x-duplicated-data-type}}
|
||||||
|
if (JSON.isInstanceOf({{{baseType}}}.class, instance, new HashSet<>())) {
|
||||||
super.setActualInstance(instance);
|
super.setActualInstance(instance);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{{/vendorExtensions.x-duplicated-data-type}}
|
||||||
{{/oneOf}}
|
{{/oneOf}}
|
||||||
|
{{/composedSchemas}}
|
||||||
throw new RuntimeException("Invalid instance type. Must be {{#oneOf}}{{{.}}}{{^-last}}, {{/-last}}{{/oneOf}}");
|
throw new RuntimeException("Invalid instance type. Must be {{#oneOf}}{{{.}}}{{^-last}}, {{/-last}}{{/oneOf}}");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -219,17 +264,26 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im
|
|||||||
return super.getActualInstance();
|
return super.getActualInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{{#composedSchemas}}
|
||||||
{{#oneOf}}
|
{{#oneOf}}
|
||||||
/**
|
/**
|
||||||
* Get the actual instance of `{{{.}}}`. If the actual instance is not `{{{.}}}`,
|
* Get the actual instance of `{{{dataType}}}`. If the actual instance is not `{{{dataType}}}`,
|
||||||
* the ClassCastException will be thrown.
|
* the ClassCastException will be thrown.
|
||||||
*
|
*
|
||||||
* @return The actual instance of `{{{.}}}`
|
* @return The actual instance of `{{{dataType}}}`
|
||||||
* @throws ClassCastException if the instance is not `{{{.}}}`
|
* @throws ClassCastException if the instance is not `{{{dataType}}}`
|
||||||
*/
|
*/
|
||||||
public {{{.}}} get{{{.}}}() throws ClassCastException {
|
{{^isArray}}
|
||||||
return ({{{.}}})super.getActualInstance();
|
public {{{dataType}}} get{{{dataType}}}() throws ClassCastException {
|
||||||
|
return ({{{dataType}}})super.getActualInstance();
|
||||||
}
|
}
|
||||||
|
{{/isArray}}
|
||||||
|
{{#isArray}}
|
||||||
|
public {{{dataType}}} get{{#sanitizeGeneric}}{{{dataType}}}{{/sanitizeGeneric}}() throws ClassCastException {
|
||||||
|
return ({{{dataType}}})super.getActualInstance();
|
||||||
|
}
|
||||||
|
{{/isArray}}
|
||||||
|
|
||||||
{{/oneOf}}
|
{{/oneOf}}
|
||||||
|
{{/composedSchemas}}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
|
|||||||
) {
|
) {
|
||||||
this();
|
this();
|
||||||
{{#readOnlyVars}}
|
{{#readOnlyVars}}
|
||||||
this.{{name}} = {{name}};
|
this.{{name}} = {{#vendorExtensions.x-is-jackson-optional-nullable}}{{name}} == null ? JsonNullable.<{{{datatypeWithEnum}}}>undefined() : JsonNullable.of({{name}}){{/vendorExtensions.x-is-jackson-optional-nullable}}{{^vendorExtensions.x-is-jackson-optional-nullable}}{{name}}{{/vendorExtensions.x-is-jackson-optional-nullable}};
|
||||||
{{/readOnlyVars}}
|
{{/readOnlyVars}}
|
||||||
}{{/jackson}}{{/withXml}}{{/vendorExtensions.x-has-readonly-properties}}
|
}{{/jackson}}{{/withXml}}{{/vendorExtensions.x-has-readonly-properties}}
|
||||||
{{#vars}}
|
{{#vars}}
|
||||||
|
|||||||
@@ -132,7 +132,7 @@ public class ApiClient extends JavaTimeFormatter {
|
|||||||
protected Map<String, List<ServerConfiguration>> operationServers;
|
protected Map<String, List<ServerConfiguration>> operationServers;
|
||||||
|
|
||||||
{
|
{
|
||||||
Map<String, List<ServerConfiguration>> operationServers = new LinkedHashMap<>();
|
Map<String, List<ServerConfiguration>> operationServers = new HashMap<>();
|
||||||
operationServers.put("PetApi.addPet", new ArrayList<>(Arrays.asList(
|
operationServers.put("PetApi.addPet", new ArrayList<>(Arrays.asList(
|
||||||
new ServerConfiguration(
|
new ServerConfiguration(
|
||||||
"http://petstore.swagger.io/v2",
|
"http://petstore.swagger.io/v2",
|
||||||
|
|||||||
@@ -94,19 +94,9 @@ public class Fruit extends AbstractOpenApiSchema {
|
|||||||
boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS);
|
boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS);
|
||||||
int match = 0;
|
int match = 0;
|
||||||
JsonToken token = tree.traverse(jp.getCodec()).nextToken();
|
JsonToken token = tree.traverse(jp.getCodec()).nextToken();
|
||||||
// deserialize Apple
|
// deserialize Apple (nullable)
|
||||||
try {
|
try {
|
||||||
boolean attemptParsing = true;
|
boolean attemptParsing = true;
|
||||||
// ensure that we respect type coercion as set on the client ObjectMapper
|
|
||||||
if (Apple.class.equals(Integer.class) || Apple.class.equals(Long.class) || Apple.class.equals(Float.class) || Apple.class.equals(Double.class) || Apple.class.equals(Boolean.class) || Apple.class.equals(String.class)) {
|
|
||||||
attemptParsing = typeCoercion;
|
|
||||||
if (!attemptParsing) {
|
|
||||||
attemptParsing |= ((Apple.class.equals(Integer.class) || Apple.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
|
|
||||||
attemptParsing |= ((Apple.class.equals(Float.class) || Apple.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
|
|
||||||
attemptParsing |= (Apple.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
|
|
||||||
attemptParsing |= (Apple.class.equals(String.class) && token == JsonToken.VALUE_STRING);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (attemptParsing) {
|
if (attemptParsing) {
|
||||||
deserialized = tree.traverse(jp.getCodec()).readValueAs(Apple.class);
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(Apple.class);
|
||||||
// TODO: there is no validation against JSON schema constraints
|
// TODO: there is no validation against JSON schema constraints
|
||||||
@@ -123,16 +113,6 @@ public class Fruit extends AbstractOpenApiSchema {
|
|||||||
// deserialize Banana
|
// deserialize Banana
|
||||||
try {
|
try {
|
||||||
boolean attemptParsing = true;
|
boolean attemptParsing = true;
|
||||||
// ensure that we respect type coercion as set on the client ObjectMapper
|
|
||||||
if (Banana.class.equals(Integer.class) || Banana.class.equals(Long.class) || Banana.class.equals(Float.class) || Banana.class.equals(Double.class) || Banana.class.equals(Boolean.class) || Banana.class.equals(String.class)) {
|
|
||||||
attemptParsing = typeCoercion;
|
|
||||||
if (!attemptParsing) {
|
|
||||||
attemptParsing |= ((Banana.class.equals(Integer.class) || Banana.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
|
|
||||||
attemptParsing |= ((Banana.class.equals(Float.class) || Banana.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
|
|
||||||
attemptParsing |= (Banana.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
|
|
||||||
attemptParsing |= (Banana.class.equals(String.class) && token == JsonToken.VALUE_STRING);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (attemptParsing) {
|
if (attemptParsing) {
|
||||||
deserialized = tree.traverse(jp.getCodec()).readValueAs(Banana.class);
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(Banana.class);
|
||||||
// TODO: there is no validation against JSON schema constraints
|
// TODO: there is no validation against JSON schema constraints
|
||||||
@@ -171,7 +151,7 @@ public class Fruit extends AbstractOpenApiSchema {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Fruit(Apple o) {
|
public Fruit(Apple o) {
|
||||||
super("oneOf", Boolean.FALSE);
|
super("oneOf", Boolean.TRUE);
|
||||||
setActualInstance(o);
|
setActualInstance(o);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -97,17 +97,6 @@ public class FruitReq extends AbstractOpenApiSchema {
|
|||||||
// deserialize AppleReq
|
// deserialize AppleReq
|
||||||
try {
|
try {
|
||||||
boolean attemptParsing = true;
|
boolean attemptParsing = true;
|
||||||
// ensure that we respect type coercion as set on the client ObjectMapper
|
|
||||||
if (AppleReq.class.equals(Integer.class) || AppleReq.class.equals(Long.class) || AppleReq.class.equals(Float.class) || AppleReq.class.equals(Double.class) || AppleReq.class.equals(Boolean.class) || AppleReq.class.equals(String.class)) {
|
|
||||||
attemptParsing = typeCoercion;
|
|
||||||
if (!attemptParsing) {
|
|
||||||
attemptParsing |= ((AppleReq.class.equals(Integer.class) || AppleReq.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
|
|
||||||
attemptParsing |= ((AppleReq.class.equals(Float.class) || AppleReq.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
|
|
||||||
attemptParsing |= (AppleReq.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
|
|
||||||
attemptParsing |= (AppleReq.class.equals(String.class) && token == JsonToken.VALUE_STRING);
|
|
||||||
attemptParsing |= (token == JsonToken.VALUE_NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (attemptParsing) {
|
if (attemptParsing) {
|
||||||
deserialized = tree.traverse(jp.getCodec()).readValueAs(AppleReq.class);
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(AppleReq.class);
|
||||||
// TODO: there is no validation against JSON schema constraints
|
// TODO: there is no validation against JSON schema constraints
|
||||||
@@ -124,17 +113,6 @@ public class FruitReq extends AbstractOpenApiSchema {
|
|||||||
// deserialize BananaReq
|
// deserialize BananaReq
|
||||||
try {
|
try {
|
||||||
boolean attemptParsing = true;
|
boolean attemptParsing = true;
|
||||||
// ensure that we respect type coercion as set on the client ObjectMapper
|
|
||||||
if (BananaReq.class.equals(Integer.class) || BananaReq.class.equals(Long.class) || BananaReq.class.equals(Float.class) || BananaReq.class.equals(Double.class) || BananaReq.class.equals(Boolean.class) || BananaReq.class.equals(String.class)) {
|
|
||||||
attemptParsing = typeCoercion;
|
|
||||||
if (!attemptParsing) {
|
|
||||||
attemptParsing |= ((BananaReq.class.equals(Integer.class) || BananaReq.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
|
|
||||||
attemptParsing |= ((BananaReq.class.equals(Float.class) || BananaReq.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
|
|
||||||
attemptParsing |= (BananaReq.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
|
|
||||||
attemptParsing |= (BananaReq.class.equals(String.class) && token == JsonToken.VALUE_STRING);
|
|
||||||
attemptParsing |= (token == JsonToken.VALUE_NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (attemptParsing) {
|
if (attemptParsing) {
|
||||||
deserialized = tree.traverse(jp.getCodec()).readValueAs(BananaReq.class);
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(BananaReq.class);
|
||||||
// TODO: there is no validation against JSON schema constraints
|
// TODO: there is no validation against JSON schema constraints
|
||||||
@@ -173,12 +151,12 @@ public class FruitReq extends AbstractOpenApiSchema {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public FruitReq(AppleReq o) {
|
public FruitReq(AppleReq o) {
|
||||||
super("oneOf", Boolean.TRUE);
|
super("oneOf", Boolean.FALSE);
|
||||||
setActualInstance(o);
|
setActualInstance(o);
|
||||||
}
|
}
|
||||||
|
|
||||||
public FruitReq(BananaReq o) {
|
public FruitReq(BananaReq o) {
|
||||||
super("oneOf", Boolean.TRUE);
|
super("oneOf", Boolean.FALSE);
|
||||||
setActualInstance(o);
|
setActualInstance(o);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ public class Mammal extends AbstractOpenApiSchema {
|
|||||||
JsonNode tree = jp.readValueAsTree();
|
JsonNode tree = jp.readValueAsTree();
|
||||||
Object deserialized = null;
|
Object deserialized = null;
|
||||||
Mammal newMammal = new Mammal();
|
Mammal newMammal = new Mammal();
|
||||||
Map<String,Object> result2 = tree.traverse(jp.getCodec()).readValueAs(new TypeReference<Map<String, Object>>() {});
|
Map<String, Object> result2 = tree.traverse(jp.getCodec()).readValueAs(new TypeReference<Map<String, Object>>() {});
|
||||||
String discriminatorValue = (String)result2.get("className");
|
String discriminatorValue = (String)result2.get("className");
|
||||||
switch (discriminatorValue) {
|
switch (discriminatorValue) {
|
||||||
case "Pig":
|
case "Pig":
|
||||||
@@ -121,45 +121,9 @@ public class Mammal extends AbstractOpenApiSchema {
|
|||||||
boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS);
|
boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS);
|
||||||
int match = 0;
|
int match = 0;
|
||||||
JsonToken token = tree.traverse(jp.getCodec()).nextToken();
|
JsonToken token = tree.traverse(jp.getCodec()).nextToken();
|
||||||
// deserialize Pig
|
|
||||||
try {
|
|
||||||
boolean attemptParsing = true;
|
|
||||||
// ensure that we respect type coercion as set on the client ObjectMapper
|
|
||||||
if (Pig.class.equals(Integer.class) || Pig.class.equals(Long.class) || Pig.class.equals(Float.class) || Pig.class.equals(Double.class) || Pig.class.equals(Boolean.class) || Pig.class.equals(String.class)) {
|
|
||||||
attemptParsing = typeCoercion;
|
|
||||||
if (!attemptParsing) {
|
|
||||||
attemptParsing |= ((Pig.class.equals(Integer.class) || Pig.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
|
|
||||||
attemptParsing |= ((Pig.class.equals(Float.class) || Pig.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
|
|
||||||
attemptParsing |= (Pig.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
|
|
||||||
attemptParsing |= (Pig.class.equals(String.class) && token == JsonToken.VALUE_STRING);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (attemptParsing) {
|
|
||||||
deserialized = tree.traverse(jp.getCodec()).readValueAs(Pig.class);
|
|
||||||
// TODO: there is no validation against JSON schema constraints
|
|
||||||
// (min, max, enum, pattern...), this does not perform a strict JSON
|
|
||||||
// validation, which means the 'match' count may be higher than it should be.
|
|
||||||
match++;
|
|
||||||
log.log(Level.FINER, "Input data matches schema 'Pig'");
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
// deserialization failed, continue
|
|
||||||
log.log(Level.FINER, "Input data does not match schema 'Pig'", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
// deserialize Whale
|
// deserialize Whale
|
||||||
try {
|
try {
|
||||||
boolean attemptParsing = true;
|
boolean attemptParsing = true;
|
||||||
// ensure that we respect type coercion as set on the client ObjectMapper
|
|
||||||
if (Whale.class.equals(Integer.class) || Whale.class.equals(Long.class) || Whale.class.equals(Float.class) || Whale.class.equals(Double.class) || Whale.class.equals(Boolean.class) || Whale.class.equals(String.class)) {
|
|
||||||
attemptParsing = typeCoercion;
|
|
||||||
if (!attemptParsing) {
|
|
||||||
attemptParsing |= ((Whale.class.equals(Integer.class) || Whale.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
|
|
||||||
attemptParsing |= ((Whale.class.equals(Float.class) || Whale.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
|
|
||||||
attemptParsing |= (Whale.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
|
|
||||||
attemptParsing |= (Whale.class.equals(String.class) && token == JsonToken.VALUE_STRING);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (attemptParsing) {
|
if (attemptParsing) {
|
||||||
deserialized = tree.traverse(jp.getCodec()).readValueAs(Whale.class);
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(Whale.class);
|
||||||
// TODO: there is no validation against JSON schema constraints
|
// TODO: there is no validation against JSON schema constraints
|
||||||
@@ -176,16 +140,6 @@ public class Mammal extends AbstractOpenApiSchema {
|
|||||||
// deserialize Zebra
|
// deserialize Zebra
|
||||||
try {
|
try {
|
||||||
boolean attemptParsing = true;
|
boolean attemptParsing = true;
|
||||||
// ensure that we respect type coercion as set on the client ObjectMapper
|
|
||||||
if (Zebra.class.equals(Integer.class) || Zebra.class.equals(Long.class) || Zebra.class.equals(Float.class) || Zebra.class.equals(Double.class) || Zebra.class.equals(Boolean.class) || Zebra.class.equals(String.class)) {
|
|
||||||
attemptParsing = typeCoercion;
|
|
||||||
if (!attemptParsing) {
|
|
||||||
attemptParsing |= ((Zebra.class.equals(Integer.class) || Zebra.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
|
|
||||||
attemptParsing |= ((Zebra.class.equals(Float.class) || Zebra.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
|
|
||||||
attemptParsing |= (Zebra.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
|
|
||||||
attemptParsing |= (Zebra.class.equals(String.class) && token == JsonToken.VALUE_STRING);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (attemptParsing) {
|
if (attemptParsing) {
|
||||||
deserialized = tree.traverse(jp.getCodec()).readValueAs(Zebra.class);
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(Zebra.class);
|
||||||
// TODO: there is no validation against JSON schema constraints
|
// TODO: there is no validation against JSON schema constraints
|
||||||
@@ -199,6 +153,22 @@ public class Mammal extends AbstractOpenApiSchema {
|
|||||||
log.log(Level.FINER, "Input data does not match schema 'Zebra'", e);
|
log.log(Level.FINER, "Input data does not match schema 'Zebra'", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// deserialize Pig
|
||||||
|
try {
|
||||||
|
boolean attemptParsing = true;
|
||||||
|
if (attemptParsing) {
|
||||||
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(Pig.class);
|
||||||
|
// TODO: there is no validation against JSON schema constraints
|
||||||
|
// (min, max, enum, pattern...), this does not perform a strict JSON
|
||||||
|
// validation, which means the 'match' count may be higher than it should be.
|
||||||
|
match++;
|
||||||
|
log.log(Level.FINER, "Input data matches schema 'Pig'");
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
// deserialization failed, continue
|
||||||
|
log.log(Level.FINER, "Input data does not match schema 'Pig'", e);
|
||||||
|
}
|
||||||
|
|
||||||
if (match == 1) {
|
if (match == 1) {
|
||||||
Mammal ret = new Mammal();
|
Mammal ret = new Mammal();
|
||||||
ret.setActualInstance(deserialized);
|
ret.setActualInstance(deserialized);
|
||||||
@@ -272,11 +242,6 @@ public class Mammal extends AbstractOpenApiSchema {
|
|||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return Objects.hash(getActualInstance(), isNullable(), getSchemaType(), additionalProperties);
|
return Objects.hash(getActualInstance(), isNullable(), getSchemaType(), additionalProperties);
|
||||||
}
|
}
|
||||||
public Mammal(Pig o) {
|
|
||||||
super("oneOf", Boolean.FALSE);
|
|
||||||
setActualInstance(o);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Mammal(Whale o) {
|
public Mammal(Whale o) {
|
||||||
super("oneOf", Boolean.FALSE);
|
super("oneOf", Boolean.FALSE);
|
||||||
setActualInstance(o);
|
setActualInstance(o);
|
||||||
@@ -287,6 +252,11 @@ public class Mammal extends AbstractOpenApiSchema {
|
|||||||
setActualInstance(o);
|
setActualInstance(o);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Mammal(Pig o) {
|
||||||
|
super("oneOf", Boolean.FALSE);
|
||||||
|
setActualInstance(o);
|
||||||
|
}
|
||||||
|
|
||||||
static {
|
static {
|
||||||
schemas.put("Pig", new GenericType<Pig>() {
|
schemas.put("Pig", new GenericType<Pig>() {
|
||||||
});
|
});
|
||||||
@@ -319,11 +289,6 @@ public class Mammal extends AbstractOpenApiSchema {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void setActualInstance(Object instance) {
|
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<>())) {
|
if (JSON.isInstanceOf(Whale.class, instance, new HashSet<>())) {
|
||||||
super.setActualInstance(instance);
|
super.setActualInstance(instance);
|
||||||
return;
|
return;
|
||||||
@@ -334,6 +299,11 @@ public class Mammal extends AbstractOpenApiSchema {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (JSON.isInstanceOf(Pig.class, instance, new HashSet<>())) {
|
||||||
|
super.setActualInstance(instance);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
throw new RuntimeException("Invalid instance type. Must be Pig, Whale, Zebra");
|
throw new RuntimeException("Invalid instance type. Must be Pig, Whale, Zebra");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -348,17 +318,6 @@ public class Mammal extends AbstractOpenApiSchema {
|
|||||||
return super.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`,
|
* Get the actual instance of `Whale`. If the actual instance is not `Whale`,
|
||||||
* the ClassCastException will be thrown.
|
* the ClassCastException will be thrown.
|
||||||
@@ -381,5 +340,16 @@ public class Mammal extends AbstractOpenApiSchema {
|
|||||||
return (Zebra)super.getActualInstance();
|
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();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ public class NullableShape extends AbstractOpenApiSchema {
|
|||||||
JsonNode tree = jp.readValueAsTree();
|
JsonNode tree = jp.readValueAsTree();
|
||||||
Object deserialized = null;
|
Object deserialized = null;
|
||||||
NullableShape newNullableShape = new NullableShape();
|
NullableShape newNullableShape = new NullableShape();
|
||||||
Map<String,Object> result2 = tree.traverse(jp.getCodec()).readValueAs(new TypeReference<Map<String, Object>>() {});
|
Map<String, Object> result2 = tree.traverse(jp.getCodec()).readValueAs(new TypeReference<Map<String, Object>>() {});
|
||||||
String discriminatorValue = (String)result2.get("shapeType");
|
String discriminatorValue = (String)result2.get("shapeType");
|
||||||
switch (discriminatorValue) {
|
switch (discriminatorValue) {
|
||||||
case "Quadrilateral":
|
case "Quadrilateral":
|
||||||
@@ -116,47 +116,9 @@ public class NullableShape extends AbstractOpenApiSchema {
|
|||||||
boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS);
|
boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS);
|
||||||
int match = 0;
|
int match = 0;
|
||||||
JsonToken token = tree.traverse(jp.getCodec()).nextToken();
|
JsonToken token = tree.traverse(jp.getCodec()).nextToken();
|
||||||
// deserialize Quadrilateral
|
|
||||||
try {
|
|
||||||
boolean attemptParsing = true;
|
|
||||||
// ensure that we respect type coercion as set on the client ObjectMapper
|
|
||||||
if (Quadrilateral.class.equals(Integer.class) || Quadrilateral.class.equals(Long.class) || Quadrilateral.class.equals(Float.class) || Quadrilateral.class.equals(Double.class) || Quadrilateral.class.equals(Boolean.class) || Quadrilateral.class.equals(String.class)) {
|
|
||||||
attemptParsing = typeCoercion;
|
|
||||||
if (!attemptParsing) {
|
|
||||||
attemptParsing |= ((Quadrilateral.class.equals(Integer.class) || Quadrilateral.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
|
|
||||||
attemptParsing |= ((Quadrilateral.class.equals(Float.class) || Quadrilateral.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
|
|
||||||
attemptParsing |= (Quadrilateral.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
|
|
||||||
attemptParsing |= (Quadrilateral.class.equals(String.class) && token == JsonToken.VALUE_STRING);
|
|
||||||
attemptParsing |= (token == JsonToken.VALUE_NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (attemptParsing) {
|
|
||||||
deserialized = tree.traverse(jp.getCodec()).readValueAs(Quadrilateral.class);
|
|
||||||
// TODO: there is no validation against JSON schema constraints
|
|
||||||
// (min, max, enum, pattern...), this does not perform a strict JSON
|
|
||||||
// validation, which means the 'match' count may be higher than it should be.
|
|
||||||
match++;
|
|
||||||
log.log(Level.FINER, "Input data matches schema 'Quadrilateral'");
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
// deserialization failed, continue
|
|
||||||
log.log(Level.FINER, "Input data does not match schema 'Quadrilateral'", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
// deserialize Triangle
|
// deserialize Triangle
|
||||||
try {
|
try {
|
||||||
boolean attemptParsing = true;
|
boolean attemptParsing = true;
|
||||||
// ensure that we respect type coercion as set on the client ObjectMapper
|
|
||||||
if (Triangle.class.equals(Integer.class) || Triangle.class.equals(Long.class) || Triangle.class.equals(Float.class) || Triangle.class.equals(Double.class) || Triangle.class.equals(Boolean.class) || Triangle.class.equals(String.class)) {
|
|
||||||
attemptParsing = typeCoercion;
|
|
||||||
if (!attemptParsing) {
|
|
||||||
attemptParsing |= ((Triangle.class.equals(Integer.class) || Triangle.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
|
|
||||||
attemptParsing |= ((Triangle.class.equals(Float.class) || Triangle.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
|
|
||||||
attemptParsing |= (Triangle.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
|
|
||||||
attemptParsing |= (Triangle.class.equals(String.class) && token == JsonToken.VALUE_STRING);
|
|
||||||
attemptParsing |= (token == JsonToken.VALUE_NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (attemptParsing) {
|
if (attemptParsing) {
|
||||||
deserialized = tree.traverse(jp.getCodec()).readValueAs(Triangle.class);
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(Triangle.class);
|
||||||
// TODO: there is no validation against JSON schema constraints
|
// TODO: there is no validation against JSON schema constraints
|
||||||
@@ -170,6 +132,22 @@ public class NullableShape extends AbstractOpenApiSchema {
|
|||||||
log.log(Level.FINER, "Input data does not match schema 'Triangle'", e);
|
log.log(Level.FINER, "Input data does not match schema 'Triangle'", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// deserialize Quadrilateral
|
||||||
|
try {
|
||||||
|
boolean attemptParsing = true;
|
||||||
|
if (attemptParsing) {
|
||||||
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(Quadrilateral.class);
|
||||||
|
// TODO: there is no validation against JSON schema constraints
|
||||||
|
// (min, max, enum, pattern...), this does not perform a strict JSON
|
||||||
|
// validation, which means the 'match' count may be higher than it should be.
|
||||||
|
match++;
|
||||||
|
log.log(Level.FINER, "Input data matches schema 'Quadrilateral'");
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
// deserialization failed, continue
|
||||||
|
log.log(Level.FINER, "Input data does not match schema 'Quadrilateral'", e);
|
||||||
|
}
|
||||||
|
|
||||||
if (match == 1) {
|
if (match == 1) {
|
||||||
NullableShape ret = new NullableShape();
|
NullableShape ret = new NullableShape();
|
||||||
ret.setActualInstance(deserialized);
|
ret.setActualInstance(deserialized);
|
||||||
@@ -243,13 +221,13 @@ public class NullableShape extends AbstractOpenApiSchema {
|
|||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return Objects.hash(getActualInstance(), isNullable(), getSchemaType(), additionalProperties);
|
return Objects.hash(getActualInstance(), isNullable(), getSchemaType(), additionalProperties);
|
||||||
}
|
}
|
||||||
public NullableShape(Quadrilateral o) {
|
public NullableShape(Triangle o) {
|
||||||
super("oneOf", Boolean.TRUE);
|
super("oneOf", Boolean.FALSE);
|
||||||
setActualInstance(o);
|
setActualInstance(o);
|
||||||
}
|
}
|
||||||
|
|
||||||
public NullableShape(Triangle o) {
|
public NullableShape(Quadrilateral o) {
|
||||||
super("oneOf", Boolean.TRUE);
|
super("oneOf", Boolean.FALSE);
|
||||||
setActualInstance(o);
|
setActualInstance(o);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -287,12 +265,12 @@ public class NullableShape extends AbstractOpenApiSchema {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (JSON.isInstanceOf(Quadrilateral.class, instance, new HashSet<>())) {
|
if (JSON.isInstanceOf(Triangle.class, instance, new HashSet<>())) {
|
||||||
super.setActualInstance(instance);
|
super.setActualInstance(instance);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (JSON.isInstanceOf(Triangle.class, instance, new HashSet<>())) {
|
if (JSON.isInstanceOf(Quadrilateral.class, instance, new HashSet<>())) {
|
||||||
super.setActualInstance(instance);
|
super.setActualInstance(instance);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -311,17 +289,6 @@ public class NullableShape extends AbstractOpenApiSchema {
|
|||||||
return super.getActualInstance();
|
return super.getActualInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the actual instance of `Quadrilateral`. If the actual instance is not `Quadrilateral`,
|
|
||||||
* the ClassCastException will be thrown.
|
|
||||||
*
|
|
||||||
* @return The actual instance of `Quadrilateral`
|
|
||||||
* @throws ClassCastException if the instance is not `Quadrilateral`
|
|
||||||
*/
|
|
||||||
public Quadrilateral getQuadrilateral() throws ClassCastException {
|
|
||||||
return (Quadrilateral)super.getActualInstance();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the actual instance of `Triangle`. If the actual instance is not `Triangle`,
|
* Get the actual instance of `Triangle`. If the actual instance is not `Triangle`,
|
||||||
* the ClassCastException will be thrown.
|
* the ClassCastException will be thrown.
|
||||||
@@ -333,5 +300,16 @@ public class NullableShape extends AbstractOpenApiSchema {
|
|||||||
return (Triangle)super.getActualInstance();
|
return (Triangle)super.getActualInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the actual instance of `Quadrilateral`. If the actual instance is not `Quadrilateral`,
|
||||||
|
* the ClassCastException will be thrown.
|
||||||
|
*
|
||||||
|
* @return The actual instance of `Quadrilateral`
|
||||||
|
* @throws ClassCastException if the instance is not `Quadrilateral`
|
||||||
|
*/
|
||||||
|
public Quadrilateral getQuadrilateral() throws ClassCastException {
|
||||||
|
return (Quadrilateral)super.getActualInstance();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ public class Pig extends AbstractOpenApiSchema {
|
|||||||
JsonNode tree = jp.readValueAsTree();
|
JsonNode tree = jp.readValueAsTree();
|
||||||
Object deserialized = null;
|
Object deserialized = null;
|
||||||
Pig newPig = new Pig();
|
Pig newPig = new Pig();
|
||||||
Map<String,Object> result2 = tree.traverse(jp.getCodec()).readValueAs(new TypeReference<Map<String, Object>>() {});
|
Map<String, Object> result2 = tree.traverse(jp.getCodec()).readValueAs(new TypeReference<Map<String, Object>>() {});
|
||||||
String discriminatorValue = (String)result2.get("className");
|
String discriminatorValue = (String)result2.get("className");
|
||||||
switch (discriminatorValue) {
|
switch (discriminatorValue) {
|
||||||
case "BasquePig":
|
case "BasquePig":
|
||||||
@@ -119,16 +119,6 @@ public class Pig extends AbstractOpenApiSchema {
|
|||||||
// deserialize BasquePig
|
// deserialize BasquePig
|
||||||
try {
|
try {
|
||||||
boolean attemptParsing = true;
|
boolean attemptParsing = true;
|
||||||
// ensure that we respect type coercion as set on the client ObjectMapper
|
|
||||||
if (BasquePig.class.equals(Integer.class) || BasquePig.class.equals(Long.class) || BasquePig.class.equals(Float.class) || BasquePig.class.equals(Double.class) || BasquePig.class.equals(Boolean.class) || BasquePig.class.equals(String.class)) {
|
|
||||||
attemptParsing = typeCoercion;
|
|
||||||
if (!attemptParsing) {
|
|
||||||
attemptParsing |= ((BasquePig.class.equals(Integer.class) || BasquePig.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
|
|
||||||
attemptParsing |= ((BasquePig.class.equals(Float.class) || BasquePig.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
|
|
||||||
attemptParsing |= (BasquePig.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
|
|
||||||
attemptParsing |= (BasquePig.class.equals(String.class) && token == JsonToken.VALUE_STRING);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (attemptParsing) {
|
if (attemptParsing) {
|
||||||
deserialized = tree.traverse(jp.getCodec()).readValueAs(BasquePig.class);
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(BasquePig.class);
|
||||||
// TODO: there is no validation against JSON schema constraints
|
// TODO: there is no validation against JSON schema constraints
|
||||||
@@ -145,16 +135,6 @@ public class Pig extends AbstractOpenApiSchema {
|
|||||||
// deserialize DanishPig
|
// deserialize DanishPig
|
||||||
try {
|
try {
|
||||||
boolean attemptParsing = true;
|
boolean attemptParsing = true;
|
||||||
// ensure that we respect type coercion as set on the client ObjectMapper
|
|
||||||
if (DanishPig.class.equals(Integer.class) || DanishPig.class.equals(Long.class) || DanishPig.class.equals(Float.class) || DanishPig.class.equals(Double.class) || DanishPig.class.equals(Boolean.class) || DanishPig.class.equals(String.class)) {
|
|
||||||
attemptParsing = typeCoercion;
|
|
||||||
if (!attemptParsing) {
|
|
||||||
attemptParsing |= ((DanishPig.class.equals(Integer.class) || DanishPig.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
|
|
||||||
attemptParsing |= ((DanishPig.class.equals(Float.class) || DanishPig.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
|
|
||||||
attemptParsing |= (DanishPig.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
|
|
||||||
attemptParsing |= (DanishPig.class.equals(String.class) && token == JsonToken.VALUE_STRING);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (attemptParsing) {
|
if (attemptParsing) {
|
||||||
deserialized = tree.traverse(jp.getCodec()).readValueAs(DanishPig.class);
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(DanishPig.class);
|
||||||
// TODO: there is no validation against JSON schema constraints
|
// TODO: there is no validation against JSON schema constraints
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ public class Quadrilateral extends AbstractOpenApiSchema {
|
|||||||
JsonNode tree = jp.readValueAsTree();
|
JsonNode tree = jp.readValueAsTree();
|
||||||
Object deserialized = null;
|
Object deserialized = null;
|
||||||
Quadrilateral newQuadrilateral = new Quadrilateral();
|
Quadrilateral newQuadrilateral = new Quadrilateral();
|
||||||
Map<String,Object> result2 = tree.traverse(jp.getCodec()).readValueAs(new TypeReference<Map<String, Object>>() {});
|
Map<String, Object> result2 = tree.traverse(jp.getCodec()).readValueAs(new TypeReference<Map<String, Object>>() {});
|
||||||
String discriminatorValue = (String)result2.get("quadrilateralType");
|
String discriminatorValue = (String)result2.get("quadrilateralType");
|
||||||
switch (discriminatorValue) {
|
switch (discriminatorValue) {
|
||||||
case "ComplexQuadrilateral":
|
case "ComplexQuadrilateral":
|
||||||
@@ -116,45 +116,9 @@ public class Quadrilateral extends AbstractOpenApiSchema {
|
|||||||
boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS);
|
boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS);
|
||||||
int match = 0;
|
int match = 0;
|
||||||
JsonToken token = tree.traverse(jp.getCodec()).nextToken();
|
JsonToken token = tree.traverse(jp.getCodec()).nextToken();
|
||||||
// deserialize ComplexQuadrilateral
|
|
||||||
try {
|
|
||||||
boolean attemptParsing = true;
|
|
||||||
// ensure that we respect type coercion as set on the client ObjectMapper
|
|
||||||
if (ComplexQuadrilateral.class.equals(Integer.class) || ComplexQuadrilateral.class.equals(Long.class) || ComplexQuadrilateral.class.equals(Float.class) || ComplexQuadrilateral.class.equals(Double.class) || ComplexQuadrilateral.class.equals(Boolean.class) || ComplexQuadrilateral.class.equals(String.class)) {
|
|
||||||
attemptParsing = typeCoercion;
|
|
||||||
if (!attemptParsing) {
|
|
||||||
attemptParsing |= ((ComplexQuadrilateral.class.equals(Integer.class) || ComplexQuadrilateral.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
|
|
||||||
attemptParsing |= ((ComplexQuadrilateral.class.equals(Float.class) || ComplexQuadrilateral.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
|
|
||||||
attemptParsing |= (ComplexQuadrilateral.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
|
|
||||||
attemptParsing |= (ComplexQuadrilateral.class.equals(String.class) && token == JsonToken.VALUE_STRING);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (attemptParsing) {
|
|
||||||
deserialized = tree.traverse(jp.getCodec()).readValueAs(ComplexQuadrilateral.class);
|
|
||||||
// TODO: there is no validation against JSON schema constraints
|
|
||||||
// (min, max, enum, pattern...), this does not perform a strict JSON
|
|
||||||
// validation, which means the 'match' count may be higher than it should be.
|
|
||||||
match++;
|
|
||||||
log.log(Level.FINER, "Input data matches schema 'ComplexQuadrilateral'");
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
// deserialization failed, continue
|
|
||||||
log.log(Level.FINER, "Input data does not match schema 'ComplexQuadrilateral'", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
// deserialize SimpleQuadrilateral
|
// deserialize SimpleQuadrilateral
|
||||||
try {
|
try {
|
||||||
boolean attemptParsing = true;
|
boolean attemptParsing = true;
|
||||||
// ensure that we respect type coercion as set on the client ObjectMapper
|
|
||||||
if (SimpleQuadrilateral.class.equals(Integer.class) || SimpleQuadrilateral.class.equals(Long.class) || SimpleQuadrilateral.class.equals(Float.class) || SimpleQuadrilateral.class.equals(Double.class) || SimpleQuadrilateral.class.equals(Boolean.class) || SimpleQuadrilateral.class.equals(String.class)) {
|
|
||||||
attemptParsing = typeCoercion;
|
|
||||||
if (!attemptParsing) {
|
|
||||||
attemptParsing |= ((SimpleQuadrilateral.class.equals(Integer.class) || SimpleQuadrilateral.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
|
|
||||||
attemptParsing |= ((SimpleQuadrilateral.class.equals(Float.class) || SimpleQuadrilateral.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
|
|
||||||
attemptParsing |= (SimpleQuadrilateral.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
|
|
||||||
attemptParsing |= (SimpleQuadrilateral.class.equals(String.class) && token == JsonToken.VALUE_STRING);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (attemptParsing) {
|
if (attemptParsing) {
|
||||||
deserialized = tree.traverse(jp.getCodec()).readValueAs(SimpleQuadrilateral.class);
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(SimpleQuadrilateral.class);
|
||||||
// TODO: there is no validation against JSON schema constraints
|
// TODO: there is no validation against JSON schema constraints
|
||||||
@@ -168,6 +132,22 @@ public class Quadrilateral extends AbstractOpenApiSchema {
|
|||||||
log.log(Level.FINER, "Input data does not match schema 'SimpleQuadrilateral'", e);
|
log.log(Level.FINER, "Input data does not match schema 'SimpleQuadrilateral'", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// deserialize ComplexQuadrilateral
|
||||||
|
try {
|
||||||
|
boolean attemptParsing = true;
|
||||||
|
if (attemptParsing) {
|
||||||
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(ComplexQuadrilateral.class);
|
||||||
|
// TODO: there is no validation against JSON schema constraints
|
||||||
|
// (min, max, enum, pattern...), this does not perform a strict JSON
|
||||||
|
// validation, which means the 'match' count may be higher than it should be.
|
||||||
|
match++;
|
||||||
|
log.log(Level.FINER, "Input data matches schema 'ComplexQuadrilateral'");
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
// deserialization failed, continue
|
||||||
|
log.log(Level.FINER, "Input data does not match schema 'ComplexQuadrilateral'", e);
|
||||||
|
}
|
||||||
|
|
||||||
if (match == 1) {
|
if (match == 1) {
|
||||||
Quadrilateral ret = new Quadrilateral();
|
Quadrilateral ret = new Quadrilateral();
|
||||||
ret.setActualInstance(deserialized);
|
ret.setActualInstance(deserialized);
|
||||||
@@ -241,12 +221,12 @@ public class Quadrilateral extends AbstractOpenApiSchema {
|
|||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return Objects.hash(getActualInstance(), isNullable(), getSchemaType(), additionalProperties);
|
return Objects.hash(getActualInstance(), isNullable(), getSchemaType(), additionalProperties);
|
||||||
}
|
}
|
||||||
public Quadrilateral(ComplexQuadrilateral o) {
|
public Quadrilateral(SimpleQuadrilateral o) {
|
||||||
super("oneOf", Boolean.FALSE);
|
super("oneOf", Boolean.FALSE);
|
||||||
setActualInstance(o);
|
setActualInstance(o);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Quadrilateral(SimpleQuadrilateral o) {
|
public Quadrilateral(ComplexQuadrilateral o) {
|
||||||
super("oneOf", Boolean.FALSE);
|
super("oneOf", Boolean.FALSE);
|
||||||
setActualInstance(o);
|
setActualInstance(o);
|
||||||
}
|
}
|
||||||
@@ -280,12 +260,12 @@ public class Quadrilateral extends AbstractOpenApiSchema {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void setActualInstance(Object instance) {
|
public void setActualInstance(Object instance) {
|
||||||
if (JSON.isInstanceOf(ComplexQuadrilateral.class, instance, new HashSet<>())) {
|
if (JSON.isInstanceOf(SimpleQuadrilateral.class, instance, new HashSet<>())) {
|
||||||
super.setActualInstance(instance);
|
super.setActualInstance(instance);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (JSON.isInstanceOf(SimpleQuadrilateral.class, instance, new HashSet<>())) {
|
if (JSON.isInstanceOf(ComplexQuadrilateral.class, instance, new HashSet<>())) {
|
||||||
super.setActualInstance(instance);
|
super.setActualInstance(instance);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -304,17 +284,6 @@ public class Quadrilateral extends AbstractOpenApiSchema {
|
|||||||
return super.getActualInstance();
|
return super.getActualInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the actual instance of `ComplexQuadrilateral`. If the actual instance is not `ComplexQuadrilateral`,
|
|
||||||
* the ClassCastException will be thrown.
|
|
||||||
*
|
|
||||||
* @return The actual instance of `ComplexQuadrilateral`
|
|
||||||
* @throws ClassCastException if the instance is not `ComplexQuadrilateral`
|
|
||||||
*/
|
|
||||||
public ComplexQuadrilateral getComplexQuadrilateral() throws ClassCastException {
|
|
||||||
return (ComplexQuadrilateral)super.getActualInstance();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the actual instance of `SimpleQuadrilateral`. If the actual instance is not `SimpleQuadrilateral`,
|
* Get the actual instance of `SimpleQuadrilateral`. If the actual instance is not `SimpleQuadrilateral`,
|
||||||
* the ClassCastException will be thrown.
|
* the ClassCastException will be thrown.
|
||||||
@@ -326,5 +295,16 @@ public class Quadrilateral extends AbstractOpenApiSchema {
|
|||||||
return (SimpleQuadrilateral)super.getActualInstance();
|
return (SimpleQuadrilateral)super.getActualInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the actual instance of `ComplexQuadrilateral`. If the actual instance is not `ComplexQuadrilateral`,
|
||||||
|
* the ClassCastException will be thrown.
|
||||||
|
*
|
||||||
|
* @return The actual instance of `ComplexQuadrilateral`
|
||||||
|
* @throws ClassCastException if the instance is not `ComplexQuadrilateral`
|
||||||
|
*/
|
||||||
|
public ComplexQuadrilateral getComplexQuadrilateral() throws ClassCastException {
|
||||||
|
return (ComplexQuadrilateral)super.getActualInstance();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ public class Shape extends AbstractOpenApiSchema {
|
|||||||
JsonNode tree = jp.readValueAsTree();
|
JsonNode tree = jp.readValueAsTree();
|
||||||
Object deserialized = null;
|
Object deserialized = null;
|
||||||
Shape newShape = new Shape();
|
Shape newShape = new Shape();
|
||||||
Map<String,Object> result2 = tree.traverse(jp.getCodec()).readValueAs(new TypeReference<Map<String, Object>>() {});
|
Map<String, Object> result2 = tree.traverse(jp.getCodec()).readValueAs(new TypeReference<Map<String, Object>>() {});
|
||||||
String discriminatorValue = (String)result2.get("shapeType");
|
String discriminatorValue = (String)result2.get("shapeType");
|
||||||
switch (discriminatorValue) {
|
switch (discriminatorValue) {
|
||||||
case "Quadrilateral":
|
case "Quadrilateral":
|
||||||
@@ -116,45 +116,9 @@ public class Shape extends AbstractOpenApiSchema {
|
|||||||
boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS);
|
boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS);
|
||||||
int match = 0;
|
int match = 0;
|
||||||
JsonToken token = tree.traverse(jp.getCodec()).nextToken();
|
JsonToken token = tree.traverse(jp.getCodec()).nextToken();
|
||||||
// deserialize Quadrilateral
|
|
||||||
try {
|
|
||||||
boolean attemptParsing = true;
|
|
||||||
// ensure that we respect type coercion as set on the client ObjectMapper
|
|
||||||
if (Quadrilateral.class.equals(Integer.class) || Quadrilateral.class.equals(Long.class) || Quadrilateral.class.equals(Float.class) || Quadrilateral.class.equals(Double.class) || Quadrilateral.class.equals(Boolean.class) || Quadrilateral.class.equals(String.class)) {
|
|
||||||
attemptParsing = typeCoercion;
|
|
||||||
if (!attemptParsing) {
|
|
||||||
attemptParsing |= ((Quadrilateral.class.equals(Integer.class) || Quadrilateral.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
|
|
||||||
attemptParsing |= ((Quadrilateral.class.equals(Float.class) || Quadrilateral.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
|
|
||||||
attemptParsing |= (Quadrilateral.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
|
|
||||||
attemptParsing |= (Quadrilateral.class.equals(String.class) && token == JsonToken.VALUE_STRING);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (attemptParsing) {
|
|
||||||
deserialized = tree.traverse(jp.getCodec()).readValueAs(Quadrilateral.class);
|
|
||||||
// TODO: there is no validation against JSON schema constraints
|
|
||||||
// (min, max, enum, pattern...), this does not perform a strict JSON
|
|
||||||
// validation, which means the 'match' count may be higher than it should be.
|
|
||||||
match++;
|
|
||||||
log.log(Level.FINER, "Input data matches schema 'Quadrilateral'");
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
// deserialization failed, continue
|
|
||||||
log.log(Level.FINER, "Input data does not match schema 'Quadrilateral'", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
// deserialize Triangle
|
// deserialize Triangle
|
||||||
try {
|
try {
|
||||||
boolean attemptParsing = true;
|
boolean attemptParsing = true;
|
||||||
// ensure that we respect type coercion as set on the client ObjectMapper
|
|
||||||
if (Triangle.class.equals(Integer.class) || Triangle.class.equals(Long.class) || Triangle.class.equals(Float.class) || Triangle.class.equals(Double.class) || Triangle.class.equals(Boolean.class) || Triangle.class.equals(String.class)) {
|
|
||||||
attemptParsing = typeCoercion;
|
|
||||||
if (!attemptParsing) {
|
|
||||||
attemptParsing |= ((Triangle.class.equals(Integer.class) || Triangle.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
|
|
||||||
attemptParsing |= ((Triangle.class.equals(Float.class) || Triangle.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
|
|
||||||
attemptParsing |= (Triangle.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
|
|
||||||
attemptParsing |= (Triangle.class.equals(String.class) && token == JsonToken.VALUE_STRING);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (attemptParsing) {
|
if (attemptParsing) {
|
||||||
deserialized = tree.traverse(jp.getCodec()).readValueAs(Triangle.class);
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(Triangle.class);
|
||||||
// TODO: there is no validation against JSON schema constraints
|
// TODO: there is no validation against JSON schema constraints
|
||||||
@@ -168,6 +132,22 @@ public class Shape extends AbstractOpenApiSchema {
|
|||||||
log.log(Level.FINER, "Input data does not match schema 'Triangle'", e);
|
log.log(Level.FINER, "Input data does not match schema 'Triangle'", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// deserialize Quadrilateral
|
||||||
|
try {
|
||||||
|
boolean attemptParsing = true;
|
||||||
|
if (attemptParsing) {
|
||||||
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(Quadrilateral.class);
|
||||||
|
// TODO: there is no validation against JSON schema constraints
|
||||||
|
// (min, max, enum, pattern...), this does not perform a strict JSON
|
||||||
|
// validation, which means the 'match' count may be higher than it should be.
|
||||||
|
match++;
|
||||||
|
log.log(Level.FINER, "Input data matches schema 'Quadrilateral'");
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
// deserialization failed, continue
|
||||||
|
log.log(Level.FINER, "Input data does not match schema 'Quadrilateral'", e);
|
||||||
|
}
|
||||||
|
|
||||||
if (match == 1) {
|
if (match == 1) {
|
||||||
Shape ret = new Shape();
|
Shape ret = new Shape();
|
||||||
ret.setActualInstance(deserialized);
|
ret.setActualInstance(deserialized);
|
||||||
@@ -241,12 +221,12 @@ public class Shape extends AbstractOpenApiSchema {
|
|||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return Objects.hash(getActualInstance(), isNullable(), getSchemaType(), additionalProperties);
|
return Objects.hash(getActualInstance(), isNullable(), getSchemaType(), additionalProperties);
|
||||||
}
|
}
|
||||||
public Shape(Quadrilateral o) {
|
public Shape(Triangle o) {
|
||||||
super("oneOf", Boolean.FALSE);
|
super("oneOf", Boolean.FALSE);
|
||||||
setActualInstance(o);
|
setActualInstance(o);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Shape(Triangle o) {
|
public Shape(Quadrilateral o) {
|
||||||
super("oneOf", Boolean.FALSE);
|
super("oneOf", Boolean.FALSE);
|
||||||
setActualInstance(o);
|
setActualInstance(o);
|
||||||
}
|
}
|
||||||
@@ -280,12 +260,12 @@ public class Shape extends AbstractOpenApiSchema {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void setActualInstance(Object instance) {
|
public void setActualInstance(Object instance) {
|
||||||
if (JSON.isInstanceOf(Quadrilateral.class, instance, new HashSet<>())) {
|
if (JSON.isInstanceOf(Triangle.class, instance, new HashSet<>())) {
|
||||||
super.setActualInstance(instance);
|
super.setActualInstance(instance);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (JSON.isInstanceOf(Triangle.class, instance, new HashSet<>())) {
|
if (JSON.isInstanceOf(Quadrilateral.class, instance, new HashSet<>())) {
|
||||||
super.setActualInstance(instance);
|
super.setActualInstance(instance);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -304,17 +284,6 @@ public class Shape extends AbstractOpenApiSchema {
|
|||||||
return super.getActualInstance();
|
return super.getActualInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the actual instance of `Quadrilateral`. If the actual instance is not `Quadrilateral`,
|
|
||||||
* the ClassCastException will be thrown.
|
|
||||||
*
|
|
||||||
* @return The actual instance of `Quadrilateral`
|
|
||||||
* @throws ClassCastException if the instance is not `Quadrilateral`
|
|
||||||
*/
|
|
||||||
public Quadrilateral getQuadrilateral() throws ClassCastException {
|
|
||||||
return (Quadrilateral)super.getActualInstance();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the actual instance of `Triangle`. If the actual instance is not `Triangle`,
|
* Get the actual instance of `Triangle`. If the actual instance is not `Triangle`,
|
||||||
* the ClassCastException will be thrown.
|
* the ClassCastException will be thrown.
|
||||||
@@ -326,5 +295,16 @@ public class Shape extends AbstractOpenApiSchema {
|
|||||||
return (Triangle)super.getActualInstance();
|
return (Triangle)super.getActualInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the actual instance of `Quadrilateral`. If the actual instance is not `Quadrilateral`,
|
||||||
|
* the ClassCastException will be thrown.
|
||||||
|
*
|
||||||
|
* @return The actual instance of `Quadrilateral`
|
||||||
|
* @throws ClassCastException if the instance is not `Quadrilateral`
|
||||||
|
*/
|
||||||
|
public Quadrilateral getQuadrilateral() throws ClassCastException {
|
||||||
|
return (Quadrilateral)super.getActualInstance();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ public class ShapeOrNull extends AbstractOpenApiSchema {
|
|||||||
JsonNode tree = jp.readValueAsTree();
|
JsonNode tree = jp.readValueAsTree();
|
||||||
Object deserialized = null;
|
Object deserialized = null;
|
||||||
ShapeOrNull newShapeOrNull = new ShapeOrNull();
|
ShapeOrNull newShapeOrNull = new ShapeOrNull();
|
||||||
Map<String,Object> result2 = tree.traverse(jp.getCodec()).readValueAs(new TypeReference<Map<String, Object>>() {});
|
Map<String, Object> result2 = tree.traverse(jp.getCodec()).readValueAs(new TypeReference<Map<String, Object>>() {});
|
||||||
String discriminatorValue = (String)result2.get("shapeType");
|
String discriminatorValue = (String)result2.get("shapeType");
|
||||||
switch (discriminatorValue) {
|
switch (discriminatorValue) {
|
||||||
case "Quadrilateral":
|
case "Quadrilateral":
|
||||||
@@ -116,47 +116,9 @@ public class ShapeOrNull extends AbstractOpenApiSchema {
|
|||||||
boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS);
|
boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS);
|
||||||
int match = 0;
|
int match = 0;
|
||||||
JsonToken token = tree.traverse(jp.getCodec()).nextToken();
|
JsonToken token = tree.traverse(jp.getCodec()).nextToken();
|
||||||
// deserialize Quadrilateral
|
|
||||||
try {
|
|
||||||
boolean attemptParsing = true;
|
|
||||||
// ensure that we respect type coercion as set on the client ObjectMapper
|
|
||||||
if (Quadrilateral.class.equals(Integer.class) || Quadrilateral.class.equals(Long.class) || Quadrilateral.class.equals(Float.class) || Quadrilateral.class.equals(Double.class) || Quadrilateral.class.equals(Boolean.class) || Quadrilateral.class.equals(String.class)) {
|
|
||||||
attemptParsing = typeCoercion;
|
|
||||||
if (!attemptParsing) {
|
|
||||||
attemptParsing |= ((Quadrilateral.class.equals(Integer.class) || Quadrilateral.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
|
|
||||||
attemptParsing |= ((Quadrilateral.class.equals(Float.class) || Quadrilateral.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
|
|
||||||
attemptParsing |= (Quadrilateral.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
|
|
||||||
attemptParsing |= (Quadrilateral.class.equals(String.class) && token == JsonToken.VALUE_STRING);
|
|
||||||
attemptParsing |= (token == JsonToken.VALUE_NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (attemptParsing) {
|
|
||||||
deserialized = tree.traverse(jp.getCodec()).readValueAs(Quadrilateral.class);
|
|
||||||
// TODO: there is no validation against JSON schema constraints
|
|
||||||
// (min, max, enum, pattern...), this does not perform a strict JSON
|
|
||||||
// validation, which means the 'match' count may be higher than it should be.
|
|
||||||
match++;
|
|
||||||
log.log(Level.FINER, "Input data matches schema 'Quadrilateral'");
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
// deserialization failed, continue
|
|
||||||
log.log(Level.FINER, "Input data does not match schema 'Quadrilateral'", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
// deserialize Triangle
|
// deserialize Triangle
|
||||||
try {
|
try {
|
||||||
boolean attemptParsing = true;
|
boolean attemptParsing = true;
|
||||||
// ensure that we respect type coercion as set on the client ObjectMapper
|
|
||||||
if (Triangle.class.equals(Integer.class) || Triangle.class.equals(Long.class) || Triangle.class.equals(Float.class) || Triangle.class.equals(Double.class) || Triangle.class.equals(Boolean.class) || Triangle.class.equals(String.class)) {
|
|
||||||
attemptParsing = typeCoercion;
|
|
||||||
if (!attemptParsing) {
|
|
||||||
attemptParsing |= ((Triangle.class.equals(Integer.class) || Triangle.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
|
|
||||||
attemptParsing |= ((Triangle.class.equals(Float.class) || Triangle.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
|
|
||||||
attemptParsing |= (Triangle.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
|
|
||||||
attemptParsing |= (Triangle.class.equals(String.class) && token == JsonToken.VALUE_STRING);
|
|
||||||
attemptParsing |= (token == JsonToken.VALUE_NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (attemptParsing) {
|
if (attemptParsing) {
|
||||||
deserialized = tree.traverse(jp.getCodec()).readValueAs(Triangle.class);
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(Triangle.class);
|
||||||
// TODO: there is no validation against JSON schema constraints
|
// TODO: there is no validation against JSON schema constraints
|
||||||
@@ -170,6 +132,22 @@ public class ShapeOrNull extends AbstractOpenApiSchema {
|
|||||||
log.log(Level.FINER, "Input data does not match schema 'Triangle'", e);
|
log.log(Level.FINER, "Input data does not match schema 'Triangle'", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// deserialize Quadrilateral
|
||||||
|
try {
|
||||||
|
boolean attemptParsing = true;
|
||||||
|
if (attemptParsing) {
|
||||||
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(Quadrilateral.class);
|
||||||
|
// TODO: there is no validation against JSON schema constraints
|
||||||
|
// (min, max, enum, pattern...), this does not perform a strict JSON
|
||||||
|
// validation, which means the 'match' count may be higher than it should be.
|
||||||
|
match++;
|
||||||
|
log.log(Level.FINER, "Input data matches schema 'Quadrilateral'");
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
// deserialization failed, continue
|
||||||
|
log.log(Level.FINER, "Input data does not match schema 'Quadrilateral'", e);
|
||||||
|
}
|
||||||
|
|
||||||
if (match == 1) {
|
if (match == 1) {
|
||||||
ShapeOrNull ret = new ShapeOrNull();
|
ShapeOrNull ret = new ShapeOrNull();
|
||||||
ret.setActualInstance(deserialized);
|
ret.setActualInstance(deserialized);
|
||||||
@@ -243,13 +221,13 @@ public class ShapeOrNull extends AbstractOpenApiSchema {
|
|||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return Objects.hash(getActualInstance(), isNullable(), getSchemaType(), additionalProperties);
|
return Objects.hash(getActualInstance(), isNullable(), getSchemaType(), additionalProperties);
|
||||||
}
|
}
|
||||||
public ShapeOrNull(Quadrilateral o) {
|
public ShapeOrNull(Triangle o) {
|
||||||
super("oneOf", Boolean.TRUE);
|
super("oneOf", Boolean.FALSE);
|
||||||
setActualInstance(o);
|
setActualInstance(o);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ShapeOrNull(Triangle o) {
|
public ShapeOrNull(Quadrilateral o) {
|
||||||
super("oneOf", Boolean.TRUE);
|
super("oneOf", Boolean.FALSE);
|
||||||
setActualInstance(o);
|
setActualInstance(o);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -287,12 +265,12 @@ public class ShapeOrNull extends AbstractOpenApiSchema {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (JSON.isInstanceOf(Quadrilateral.class, instance, new HashSet<>())) {
|
if (JSON.isInstanceOf(Triangle.class, instance, new HashSet<>())) {
|
||||||
super.setActualInstance(instance);
|
super.setActualInstance(instance);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (JSON.isInstanceOf(Triangle.class, instance, new HashSet<>())) {
|
if (JSON.isInstanceOf(Quadrilateral.class, instance, new HashSet<>())) {
|
||||||
super.setActualInstance(instance);
|
super.setActualInstance(instance);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -311,17 +289,6 @@ public class ShapeOrNull extends AbstractOpenApiSchema {
|
|||||||
return super.getActualInstance();
|
return super.getActualInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the actual instance of `Quadrilateral`. If the actual instance is not `Quadrilateral`,
|
|
||||||
* the ClassCastException will be thrown.
|
|
||||||
*
|
|
||||||
* @return The actual instance of `Quadrilateral`
|
|
||||||
* @throws ClassCastException if the instance is not `Quadrilateral`
|
|
||||||
*/
|
|
||||||
public Quadrilateral getQuadrilateral() throws ClassCastException {
|
|
||||||
return (Quadrilateral)super.getActualInstance();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the actual instance of `Triangle`. If the actual instance is not `Triangle`,
|
* Get the actual instance of `Triangle`. If the actual instance is not `Triangle`,
|
||||||
* the ClassCastException will be thrown.
|
* the ClassCastException will be thrown.
|
||||||
@@ -333,5 +300,16 @@ public class ShapeOrNull extends AbstractOpenApiSchema {
|
|||||||
return (Triangle)super.getActualInstance();
|
return (Triangle)super.getActualInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the actual instance of `Quadrilateral`. If the actual instance is not `Quadrilateral`,
|
||||||
|
* the ClassCastException will be thrown.
|
||||||
|
*
|
||||||
|
* @return The actual instance of `Quadrilateral`
|
||||||
|
* @throws ClassCastException if the instance is not `Quadrilateral`
|
||||||
|
*/
|
||||||
|
public Quadrilateral getQuadrilateral() throws ClassCastException {
|
||||||
|
return (Quadrilateral)super.getActualInstance();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ public class Triangle extends AbstractOpenApiSchema {
|
|||||||
JsonNode tree = jp.readValueAsTree();
|
JsonNode tree = jp.readValueAsTree();
|
||||||
Object deserialized = null;
|
Object deserialized = null;
|
||||||
Triangle newTriangle = new Triangle();
|
Triangle newTriangle = new Triangle();
|
||||||
Map<String,Object> result2 = tree.traverse(jp.getCodec()).readValueAs(new TypeReference<Map<String, Object>>() {});
|
Map<String, Object> result2 = tree.traverse(jp.getCodec()).readValueAs(new TypeReference<Map<String, Object>>() {});
|
||||||
String discriminatorValue = (String)result2.get("triangleType");
|
String discriminatorValue = (String)result2.get("triangleType");
|
||||||
switch (discriminatorValue) {
|
switch (discriminatorValue) {
|
||||||
case "EquilateralTriangle":
|
case "EquilateralTriangle":
|
||||||
@@ -124,16 +124,6 @@ public class Triangle extends AbstractOpenApiSchema {
|
|||||||
// deserialize EquilateralTriangle
|
// deserialize EquilateralTriangle
|
||||||
try {
|
try {
|
||||||
boolean attemptParsing = true;
|
boolean attemptParsing = true;
|
||||||
// ensure that we respect type coercion as set on the client ObjectMapper
|
|
||||||
if (EquilateralTriangle.class.equals(Integer.class) || EquilateralTriangle.class.equals(Long.class) || EquilateralTriangle.class.equals(Float.class) || EquilateralTriangle.class.equals(Double.class) || EquilateralTriangle.class.equals(Boolean.class) || EquilateralTriangle.class.equals(String.class)) {
|
|
||||||
attemptParsing = typeCoercion;
|
|
||||||
if (!attemptParsing) {
|
|
||||||
attemptParsing |= ((EquilateralTriangle.class.equals(Integer.class) || EquilateralTriangle.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
|
|
||||||
attemptParsing |= ((EquilateralTriangle.class.equals(Float.class) || EquilateralTriangle.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
|
|
||||||
attemptParsing |= (EquilateralTriangle.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
|
|
||||||
attemptParsing |= (EquilateralTriangle.class.equals(String.class) && token == JsonToken.VALUE_STRING);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (attemptParsing) {
|
if (attemptParsing) {
|
||||||
deserialized = tree.traverse(jp.getCodec()).readValueAs(EquilateralTriangle.class);
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(EquilateralTriangle.class);
|
||||||
// TODO: there is no validation against JSON schema constraints
|
// TODO: there is no validation against JSON schema constraints
|
||||||
@@ -150,16 +140,6 @@ public class Triangle extends AbstractOpenApiSchema {
|
|||||||
// deserialize IsoscelesTriangle
|
// deserialize IsoscelesTriangle
|
||||||
try {
|
try {
|
||||||
boolean attemptParsing = true;
|
boolean attemptParsing = true;
|
||||||
// ensure that we respect type coercion as set on the client ObjectMapper
|
|
||||||
if (IsoscelesTriangle.class.equals(Integer.class) || IsoscelesTriangle.class.equals(Long.class) || IsoscelesTriangle.class.equals(Float.class) || IsoscelesTriangle.class.equals(Double.class) || IsoscelesTriangle.class.equals(Boolean.class) || IsoscelesTriangle.class.equals(String.class)) {
|
|
||||||
attemptParsing = typeCoercion;
|
|
||||||
if (!attemptParsing) {
|
|
||||||
attemptParsing |= ((IsoscelesTriangle.class.equals(Integer.class) || IsoscelesTriangle.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
|
|
||||||
attemptParsing |= ((IsoscelesTriangle.class.equals(Float.class) || IsoscelesTriangle.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
|
|
||||||
attemptParsing |= (IsoscelesTriangle.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
|
|
||||||
attemptParsing |= (IsoscelesTriangle.class.equals(String.class) && token == JsonToken.VALUE_STRING);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (attemptParsing) {
|
if (attemptParsing) {
|
||||||
deserialized = tree.traverse(jp.getCodec()).readValueAs(IsoscelesTriangle.class);
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(IsoscelesTriangle.class);
|
||||||
// TODO: there is no validation against JSON schema constraints
|
// TODO: there is no validation against JSON schema constraints
|
||||||
@@ -176,16 +156,6 @@ public class Triangle extends AbstractOpenApiSchema {
|
|||||||
// deserialize ScaleneTriangle
|
// deserialize ScaleneTriangle
|
||||||
try {
|
try {
|
||||||
boolean attemptParsing = true;
|
boolean attemptParsing = true;
|
||||||
// ensure that we respect type coercion as set on the client ObjectMapper
|
|
||||||
if (ScaleneTriangle.class.equals(Integer.class) || ScaleneTriangle.class.equals(Long.class) || ScaleneTriangle.class.equals(Float.class) || ScaleneTriangle.class.equals(Double.class) || ScaleneTriangle.class.equals(Boolean.class) || ScaleneTriangle.class.equals(String.class)) {
|
|
||||||
attemptParsing = typeCoercion;
|
|
||||||
if (!attemptParsing) {
|
|
||||||
attemptParsing |= ((ScaleneTriangle.class.equals(Integer.class) || ScaleneTriangle.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
|
|
||||||
attemptParsing |= ((ScaleneTriangle.class.equals(Float.class) || ScaleneTriangle.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
|
|
||||||
attemptParsing |= (ScaleneTriangle.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
|
|
||||||
attemptParsing |= (ScaleneTriangle.class.equals(String.class) && token == JsonToken.VALUE_STRING);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (attemptParsing) {
|
if (attemptParsing) {
|
||||||
deserialized = tree.traverse(jp.getCodec()).readValueAs(ScaleneTriangle.class);
|
deserialized = tree.traverse(jp.getCodec()).readValueAs(ScaleneTriangle.class);
|
||||||
// TODO: there is no validation against JSON schema constraints
|
// TODO: there is no validation against JSON schema constraints
|
||||||
|
|||||||
@@ -99,6 +99,7 @@ public class Pet {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static final String JSON_PROPERTY_STATUS = "status";
|
public static final String JSON_PROPERTY_STATUS = "status";
|
||||||
|
@Deprecated
|
||||||
private StatusEnum status;
|
private StatusEnum status;
|
||||||
|
|
||||||
public Pet() {
|
public Pet() {
|
||||||
@@ -250,6 +251,7 @@ public class Pet {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
public Pet status(StatusEnum status) {
|
public Pet status(StatusEnum status) {
|
||||||
this.status = status;
|
this.status = status;
|
||||||
return this;
|
return this;
|
||||||
@@ -271,6 +273,7 @@ public class Pet {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
@JsonProperty(JSON_PROPERTY_STATUS)
|
@JsonProperty(JSON_PROPERTY_STATUS)
|
||||||
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
|
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
|
||||||
public void setStatus(StatusEnum status) {
|
public void setStatus(StatusEnum status) {
|
||||||
|
|||||||
@@ -98,6 +98,7 @@ public class Pet {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static final String JSON_PROPERTY_STATUS = "status";
|
public static final String JSON_PROPERTY_STATUS = "status";
|
||||||
|
@Deprecated
|
||||||
private StatusEnum status;
|
private StatusEnum status;
|
||||||
|
|
||||||
public Pet() {
|
public Pet() {
|
||||||
@@ -249,6 +250,7 @@ public class Pet {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
public Pet status(StatusEnum status) {
|
public Pet status(StatusEnum status) {
|
||||||
this.status = status;
|
this.status = status;
|
||||||
return this;
|
return this;
|
||||||
@@ -270,6 +272,7 @@ public class Pet {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
@JsonProperty(JSON_PROPERTY_STATUS)
|
@JsonProperty(JSON_PROPERTY_STATUS)
|
||||||
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
|
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
|
||||||
public void setStatus(StatusEnum status) {
|
public void setStatus(StatusEnum status) {
|
||||||
|
|||||||
@@ -45,12 +45,15 @@ public class ObjectWithDeprecatedFields {
|
|||||||
private String uuid;
|
private String uuid;
|
||||||
|
|
||||||
public static final String JSON_PROPERTY_ID = "id";
|
public static final String JSON_PROPERTY_ID = "id";
|
||||||
|
@Deprecated
|
||||||
private BigDecimal id;
|
private BigDecimal id;
|
||||||
|
|
||||||
public static final String JSON_PROPERTY_DEPRECATED_REF = "deprecatedRef";
|
public static final String JSON_PROPERTY_DEPRECATED_REF = "deprecatedRef";
|
||||||
|
@Deprecated
|
||||||
private DeprecatedObject deprecatedRef;
|
private DeprecatedObject deprecatedRef;
|
||||||
|
|
||||||
public static final String JSON_PROPERTY_BARS = "bars";
|
public static final String JSON_PROPERTY_BARS = "bars";
|
||||||
|
@Deprecated
|
||||||
private List<String> bars = new ArrayList<>();
|
private List<String> bars = new ArrayList<>();
|
||||||
|
|
||||||
public ObjectWithDeprecatedFields() {
|
public ObjectWithDeprecatedFields() {
|
||||||
@@ -81,6 +84,7 @@ public class ObjectWithDeprecatedFields {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
public ObjectWithDeprecatedFields id(BigDecimal id) {
|
public ObjectWithDeprecatedFields id(BigDecimal id) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
return this;
|
return this;
|
||||||
@@ -101,6 +105,7 @@ public class ObjectWithDeprecatedFields {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
@JsonProperty(JSON_PROPERTY_ID)
|
@JsonProperty(JSON_PROPERTY_ID)
|
||||||
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
|
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
|
||||||
public void setId(BigDecimal id) {
|
public void setId(BigDecimal id) {
|
||||||
@@ -108,6 +113,7 @@ public class ObjectWithDeprecatedFields {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
public ObjectWithDeprecatedFields deprecatedRef(DeprecatedObject deprecatedRef) {
|
public ObjectWithDeprecatedFields deprecatedRef(DeprecatedObject deprecatedRef) {
|
||||||
this.deprecatedRef = deprecatedRef;
|
this.deprecatedRef = deprecatedRef;
|
||||||
return this;
|
return this;
|
||||||
@@ -128,6 +134,7 @@ public class ObjectWithDeprecatedFields {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
@JsonProperty(JSON_PROPERTY_DEPRECATED_REF)
|
@JsonProperty(JSON_PROPERTY_DEPRECATED_REF)
|
||||||
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
|
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
|
||||||
public void setDeprecatedRef(DeprecatedObject deprecatedRef) {
|
public void setDeprecatedRef(DeprecatedObject deprecatedRef) {
|
||||||
@@ -135,6 +142,7 @@ public class ObjectWithDeprecatedFields {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
public ObjectWithDeprecatedFields bars(List<String> bars) {
|
public ObjectWithDeprecatedFields bars(List<String> bars) {
|
||||||
this.bars = bars;
|
this.bars = bars;
|
||||||
return this;
|
return this;
|
||||||
@@ -163,6 +171,7 @@ public class ObjectWithDeprecatedFields {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
@JsonProperty(JSON_PROPERTY_BARS)
|
@JsonProperty(JSON_PROPERTY_BARS)
|
||||||
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
|
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
|
||||||
public void setBars(List<String> bars) {
|
public void setBars(List<String> bars) {
|
||||||
|
|||||||
Reference in New Issue
Block a user