mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-07-05 15:10:49 +00:00
[Java][Native] Fix POJOs with additionalProperties incorrectly extending HashMap (#21367)
* [Java][Native] Fix POJO with additionalProperties to not extend HashMap * [Java][Native] Update samples to remove HashMap extension
This commit is contained in:
parent
d7a74849f2
commit
304b3cbcaa
@ -615,6 +615,13 @@ public class JavaClientCodegen extends AbstractJavaCodegen
|
||||
supportingFiles.add(new SupportingFile("JSON.mustache", invokerFolder, "JSON.java"));
|
||||
supportingFiles.add(new SupportingFile("AbstractOpenApiSchema.mustache", modelsFolder, "AbstractOpenApiSchema.java"));
|
||||
forceSerializationLibrary(SERIALIZATION_LIBRARY_JACKSON);
|
||||
|
||||
// Composed schemas can have the 'additionalProperties' keyword, as specified in JSON schema.
|
||||
// In principle, this should be enabled by default for all code generators. However due to limitations
|
||||
// in other code generators, support needs to be enabled on a case-by-case basis.
|
||||
// The flag below should be set for all Java libraries, but the templates need to be ported
|
||||
// one by one for each library.
|
||||
supportsAdditionalPropertiesWithComposedSchema = true;
|
||||
} else if (libRestEasy) {
|
||||
supportingFiles.add(new SupportingFile("JSON.mustache", invokerFolder, "JSON.java"));
|
||||
forceSerializationLibrary(SERIALIZATION_LIBRARY_JACKSON);
|
||||
|
@ -30,9 +30,7 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import org.openapitools.client.model.Fruit;
|
||||
import org.openapitools.client.model.NullableShape;
|
||||
import org.openapitools.client.model.Shape;
|
||||
@ -55,7 +53,7 @@ import org.openapitools.client.ApiClient;
|
||||
Drawing.JSON_PROPERTY_SHAPES
|
||||
})
|
||||
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.15.0-SNAPSHOT")
|
||||
public class Drawing extends HashMap<String, Fruit> {
|
||||
public class Drawing {
|
||||
public static final String JSON_PROPERTY_MAIN_SHAPE = "mainShape";
|
||||
@javax.annotation.Nullable
|
||||
private Shape mainShape;
|
||||
@ -245,8 +243,7 @@ public class Drawing extends HashMap<String, Fruit> {
|
||||
Objects.equals(this.shapeOrNull, drawing.shapeOrNull) &&
|
||||
equalsNullable(this.nullableShape, drawing.nullableShape) &&
|
||||
Objects.equals(this.shapes, drawing.shapes)&&
|
||||
Objects.equals(this.additionalProperties, drawing.additionalProperties) &&
|
||||
super.equals(o);
|
||||
Objects.equals(this.additionalProperties, drawing.additionalProperties);
|
||||
}
|
||||
|
||||
private static <T> boolean equalsNullable(JsonNullable<T> a, JsonNullable<T> b) {
|
||||
@ -255,7 +252,7 @@ public class Drawing extends HashMap<String, Fruit> {
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(mainShape, shapeOrNull, hashCodeNullable(nullableShape), shapes, super.hashCode(), additionalProperties);
|
||||
return Objects.hash(mainShape, shapeOrNull, hashCodeNullable(nullableShape), shapes, additionalProperties);
|
||||
}
|
||||
|
||||
private static <T> int hashCodeNullable(JsonNullable<T> a) {
|
||||
@ -269,7 +266,6 @@ public class Drawing extends HashMap<String, Fruit> {
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("class Drawing {\n");
|
||||
sb.append(" ").append(toIndentedString(super.toString())).append("\n");
|
||||
sb.append(" mainShape: ").append(toIndentedString(mainShape)).append("\n");
|
||||
sb.append(" shapeOrNull: ").append(toIndentedString(shapeOrNull)).append("\n");
|
||||
sb.append(" nullableShape: ").append(toIndentedString(nullableShape)).append("\n");
|
||||
|
@ -62,7 +62,7 @@ import org.openapitools.client.ApiClient;
|
||||
NullableClass.JSON_PROPERTY_OBJECT_ITEMS_NULLABLE
|
||||
})
|
||||
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.15.0-SNAPSHOT")
|
||||
public class NullableClass extends HashMap<String, Object> {
|
||||
public class NullableClass {
|
||||
public static final String JSON_PROPERTY_INTEGER_PROP = "integer_prop";
|
||||
private JsonNullable<Integer> integerProp = JsonNullable.<Integer>undefined();
|
||||
|
||||
@ -603,8 +603,7 @@ public class NullableClass extends HashMap<String, Object> {
|
||||
equalsNullable(this.objectNullableProp, nullableClass.objectNullableProp) &&
|
||||
equalsNullable(this.objectAndItemsNullableProp, nullableClass.objectAndItemsNullableProp) &&
|
||||
Objects.equals(this.objectItemsNullable, nullableClass.objectItemsNullable)&&
|
||||
Objects.equals(this.additionalProperties, nullableClass.additionalProperties) &&
|
||||
super.equals(o);
|
||||
Objects.equals(this.additionalProperties, nullableClass.additionalProperties);
|
||||
}
|
||||
|
||||
private static <T> boolean equalsNullable(JsonNullable<T> a, JsonNullable<T> b) {
|
||||
@ -613,7 +612,7 @@ public class NullableClass extends HashMap<String, Object> {
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(hashCodeNullable(integerProp), hashCodeNullable(numberProp), hashCodeNullable(booleanProp), hashCodeNullable(stringProp), hashCodeNullable(dateProp), hashCodeNullable(datetimeProp), hashCodeNullable(arrayNullableProp), hashCodeNullable(arrayAndItemsNullableProp), arrayItemsNullable, hashCodeNullable(objectNullableProp), hashCodeNullable(objectAndItemsNullableProp), objectItemsNullable, super.hashCode(), additionalProperties);
|
||||
return Objects.hash(hashCodeNullable(integerProp), hashCodeNullable(numberProp), hashCodeNullable(booleanProp), hashCodeNullable(stringProp), hashCodeNullable(dateProp), hashCodeNullable(datetimeProp), hashCodeNullable(arrayNullableProp), hashCodeNullable(arrayAndItemsNullableProp), arrayItemsNullable, hashCodeNullable(objectNullableProp), hashCodeNullable(objectAndItemsNullableProp), objectItemsNullable, additionalProperties);
|
||||
}
|
||||
|
||||
private static <T> int hashCodeNullable(JsonNullable<T> a) {
|
||||
@ -627,7 +626,6 @@ public class NullableClass extends HashMap<String, Object> {
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("class NullableClass {\n");
|
||||
sb.append(" ").append(toIndentedString(super.toString())).append("\n");
|
||||
sb.append(" integerProp: ").append(toIndentedString(integerProp)).append("\n");
|
||||
sb.append(" numberProp: ").append(toIndentedString(numberProp)).append("\n");
|
||||
sb.append(" booleanProp: ").append(toIndentedString(booleanProp)).append("\n");
|
||||
|
@ -29,8 +29,6 @@ import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeName;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
|
||||
|
||||
|
||||
@ -42,7 +40,7 @@ import org.openapitools.client.ApiClient;
|
||||
TestInlineFreeformAdditionalPropertiesRequest.JSON_PROPERTY_SOME_PROPERTY
|
||||
})
|
||||
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.15.0-SNAPSHOT")
|
||||
public class TestInlineFreeformAdditionalPropertiesRequest extends HashMap<String, Object> {
|
||||
public class TestInlineFreeformAdditionalPropertiesRequest {
|
||||
public static final String JSON_PROPERTY_SOME_PROPERTY = "someProperty";
|
||||
@javax.annotation.Nullable
|
||||
private String someProperty;
|
||||
@ -130,20 +128,18 @@ public class TestInlineFreeformAdditionalPropertiesRequest extends HashMap<Strin
|
||||
}
|
||||
TestInlineFreeformAdditionalPropertiesRequest testInlineFreeformAdditionalPropertiesRequest = (TestInlineFreeformAdditionalPropertiesRequest) o;
|
||||
return Objects.equals(this.someProperty, testInlineFreeformAdditionalPropertiesRequest.someProperty)&&
|
||||
Objects.equals(this.additionalProperties, testInlineFreeformAdditionalPropertiesRequest.additionalProperties) &&
|
||||
super.equals(o);
|
||||
Objects.equals(this.additionalProperties, testInlineFreeformAdditionalPropertiesRequest.additionalProperties);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(someProperty, super.hashCode(), additionalProperties);
|
||||
return Objects.hash(someProperty, additionalProperties);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("class TestInlineFreeformAdditionalPropertiesRequest {\n");
|
||||
sb.append(" ").append(toIndentedString(super.toString())).append("\n");
|
||||
sb.append(" someProperty: ").append(toIndentedString(someProperty)).append("\n");
|
||||
sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n");
|
||||
sb.append("}");
|
||||
|
@ -29,8 +29,6 @@ import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeName;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
|
||||
|
||||
|
||||
@ -43,7 +41,7 @@ import org.openapitools.client.ApiClient;
|
||||
Zebra.JSON_PROPERTY_CLASS_NAME
|
||||
})
|
||||
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.15.0-SNAPSHOT")
|
||||
public class Zebra extends HashMap<String, Object> {
|
||||
public class Zebra {
|
||||
/**
|
||||
* Gets or Sets type
|
||||
*/
|
||||
@ -197,20 +195,18 @@ public class Zebra extends HashMap<String, Object> {
|
||||
Zebra zebra = (Zebra) o;
|
||||
return Objects.equals(this.type, zebra.type) &&
|
||||
Objects.equals(this.className, zebra.className)&&
|
||||
Objects.equals(this.additionalProperties, zebra.additionalProperties) &&
|
||||
super.equals(o);
|
||||
Objects.equals(this.additionalProperties, zebra.additionalProperties);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(type, className, super.hashCode(), additionalProperties);
|
||||
return Objects.hash(type, className, additionalProperties);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("class Zebra {\n");
|
||||
sb.append(" ").append(toIndentedString(super.toString())).append("\n");
|
||||
sb.append(" type: ").append(toIndentedString(type)).append("\n");
|
||||
sb.append(" className: ").append(toIndentedString(className)).append("\n");
|
||||
sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n");
|
||||
|
@ -32,9 +32,7 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import org.openapitools.client.model.Fruit;
|
||||
import org.openapitools.client.model.NullableShape;
|
||||
import org.openapitools.client.model.Shape;
|
||||
@ -57,7 +55,7 @@ import org.openapitools.client.ApiClient;
|
||||
Drawing.JSON_PROPERTY_SHAPES
|
||||
})
|
||||
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.15.0-SNAPSHOT")
|
||||
public class Drawing extends HashMap<String, Fruit> {
|
||||
public class Drawing {
|
||||
public static final String JSON_PROPERTY_MAIN_SHAPE = "mainShape";
|
||||
@javax.annotation.Nullable
|
||||
private Shape mainShape;
|
||||
@ -259,7 +257,6 @@ public class Drawing extends HashMap<String, Fruit> {
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("class Drawing {\n");
|
||||
sb.append(" ").append(toIndentedString(super.toString())).append("\n");
|
||||
sb.append(" mainShape: ").append(toIndentedString(mainShape)).append("\n");
|
||||
sb.append(" shapeOrNull: ").append(toIndentedString(shapeOrNull)).append("\n");
|
||||
sb.append(" nullableShape: ").append(toIndentedString(nullableShape)).append("\n");
|
||||
|
@ -64,7 +64,7 @@ import org.openapitools.client.ApiClient;
|
||||
NullableClass.JSON_PROPERTY_OBJECT_ITEMS_NULLABLE
|
||||
})
|
||||
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.15.0-SNAPSHOT")
|
||||
public class NullableClass extends HashMap<String, Object> {
|
||||
public class NullableClass {
|
||||
public static final String JSON_PROPERTY_INTEGER_PROP = "integer_prop";
|
||||
private JsonNullable<Integer> integerProp = JsonNullable.<Integer>undefined();
|
||||
|
||||
@ -609,7 +609,6 @@ public class NullableClass extends HashMap<String, Object> {
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("class NullableClass {\n");
|
||||
sb.append(" ").append(toIndentedString(super.toString())).append("\n");
|
||||
sb.append(" integerProp: ").append(toIndentedString(integerProp)).append("\n");
|
||||
sb.append(" numberProp: ").append(toIndentedString(numberProp)).append("\n");
|
||||
sb.append(" booleanProp: ").append(toIndentedString(booleanProp)).append("\n");
|
||||
|
@ -31,8 +31,6 @@ import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeName;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
|
||||
|
||||
|
||||
@ -44,7 +42,7 @@ import org.openapitools.client.ApiClient;
|
||||
TestInlineFreeformAdditionalPropertiesRequest.JSON_PROPERTY_SOME_PROPERTY
|
||||
})
|
||||
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.15.0-SNAPSHOT")
|
||||
public class TestInlineFreeformAdditionalPropertiesRequest extends HashMap<String, Object> {
|
||||
public class TestInlineFreeformAdditionalPropertiesRequest {
|
||||
public static final String JSON_PROPERTY_SOME_PROPERTY = "someProperty";
|
||||
@javax.annotation.Nullable
|
||||
private String someProperty;
|
||||
@ -136,7 +134,6 @@ public class TestInlineFreeformAdditionalPropertiesRequest extends HashMap<Strin
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("class TestInlineFreeformAdditionalPropertiesRequest {\n");
|
||||
sb.append(" ").append(toIndentedString(super.toString())).append("\n");
|
||||
sb.append(" someProperty: ").append(toIndentedString(someProperty)).append("\n");
|
||||
sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n");
|
||||
sb.append("}");
|
||||
|
@ -31,8 +31,6 @@ import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeName;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
|
||||
|
||||
|
||||
@ -45,7 +43,7 @@ import org.openapitools.client.ApiClient;
|
||||
Zebra.JSON_PROPERTY_CLASS_NAME
|
||||
})
|
||||
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.15.0-SNAPSHOT")
|
||||
public class Zebra extends HashMap<String, Object> {
|
||||
public class Zebra {
|
||||
/**
|
||||
* Gets or Sets type
|
||||
*/
|
||||
@ -202,7 +200,6 @@ public class Zebra extends HashMap<String, Object> {
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("class Zebra {\n");
|
||||
sb.append(" ").append(toIndentedString(super.toString())).append("\n");
|
||||
sb.append(" type: ").append(toIndentedString(type)).append("\n");
|
||||
sb.append(" className: ").append(toIndentedString(className)).append("\n");
|
||||
sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n");
|
||||
|
Loading…
x
Reference in New Issue
Block a user