[JAVA] [SPRING] [PKMST] [MICRONAUT] XML wireformat: Fix Jackson useWrapping=false, JAXB+Jackson namespaces (#18870)

* Fix XML annotations on model properties (JavaSpring)

* generate JAXB annotations for attributes and elements

* generate wrapper annotations (JAXB and Jackson)

* use XML config from items for annotations of containers

* Add test for Jackson XML wrapper correctness

* Add additional test cases to cover all xml applications in spec

Test now covers all use cases described in
- https://web.archive.org/web/20240424203304/https://swagger.io/docs/specification/data-models/representing-xml/
- https://spec.openapis.org/oas/v3.0.0#xml-arrays

* Fix basename used instead of xmlName when items.xmlName is unset

See last example in spec: https://spec.openapis.org/oas/v3.0.0#xml-arrays

* Harmonize spacing between Annotation attribute name and value

* Refactor and group JAXB vs. Jackson XML annotations, only generate latter if enabled

This is in line with the way the class annotations in `xmlAnnotations.mustache`
are rendered – which only renders the `@Jackson`… xml annotations if
additionalProperty jackson is true.

Also reorder annotation attributes in the following order:
- localName/name
- namespace (optional)
- isAttribute/useWrapping (optional)

* Explicitly render `useWrapping = true` to @JacksonXmlElementWrapper

This was slightly inspired by @jzrebiec via PR #5371.

Wrapping is the default since Jackson 2.1 – so explicitly rendering
this will:
- make generated model work out-of-the-box in Jackson 2.0 for instance
- ensure the models still work if the local `XmlWrapper` was
  configured with `useXmlWrapper(false)`

* Move xml test spec to java resources folder (not spring specific)

* Make test class name match class-under-test

This makes discovery & cross-navigation in IDE easier.

* Add complete xml annotations test for Java generators

* Fix Java PKMST generator not generating @JacksonXmlElementWrapper

* Fix Java microprofile generator missing @JacksonXmlRootElement

* Fix Java microprofile generator not using wrapper annotations and namespaces

* Fix Java Micronaut Client creating invalid (unclosed) @XmlAttribute annotations

* Fix Micronaut Client using wrong localName for @JacksonXmlElementWrapper

* Fix Micronaut client rendering @JacksonXmlProperty annotation twice

* Make Java Micronaut render @JacksonXmlElementWrapper(useWrapping=false) for non-wrapped elements

* Fix Jackson element using `xml.name` when it should be `items.xml.name`

Closes #5989
Closes #3223
Relates to #9371

* Fix JAXB element using `baseName` instead of `xmlName` when items.xmlName is unset

* Remove XML generation debug output from templates

* Remove redundant newline between XML class annotations and class

Brings the SpringCodegen in line with other Java Codegen's

* Remove redundant newline between XML setter annotations and setter

* Fix multiline JavaDoc block indentation and format

* Simplify / condense xml annotation template into single lines

May look a bit more complex, but cuts out a lot of repetitiveness.
Also reorders annotation attributes in the following order:
- localName/name
- namespace (optional)
- isAttribute/useWrapping (optional)

* Harmonize spacing between Annotation attribute name and value

* Remove unused jackson_annotations partial

Was not referenced anywhere in java-helidon resources folder

---------

Co-authored-by: Christian Schuster <christian@dnup.de>
This commit is contained in:
Philzen
2024-06-15 17:02:32 +02:00
committed by GitHub
parent 13facdaab5
commit 642b1a3a95
2726 changed files with 20424 additions and 20024 deletions

View File

@@ -78,12 +78,12 @@ public class Category {
openapiRequiredFields = new HashSet<String>();
}
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to Category
*/
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to Category
*/
public static void validateJsonElement(JsonElement jsonElement) throws IOException {
if (jsonElement == null) {
if (!Category.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null
@@ -129,22 +129,22 @@ public class Category {
}
}
/**
* Create an instance of Category given an JSON string
*
* @param jsonString JSON string
* @return An instance of Category
* @throws IOException if the JSON string is invalid with respect to Category
*/
/**
* Create an instance of Category given an JSON string
*
* @param jsonString JSON string
* @return An instance of Category
* @throws IOException if the JSON string is invalid with respect to Category
*/
public static Category fromJson(String jsonString) throws IOException {
return JSON.getGson().fromJson(jsonString, Category.class);
}
/**
* Convert an instance of Category to an JSON string
*
* @return JSON string
*/
/**
* Convert an instance of Category to an JSON string
*
* @return JSON string
*/
public String toJson() {
return JSON.getGson().toJson(this);
}

View File

@@ -78,12 +78,12 @@ public class ModelApiResponse {
openapiRequiredFields = new HashSet<String>();
}
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to ModelApiResponse
*/
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to ModelApiResponse
*/
public static void validateJsonElement(JsonElement jsonElement) throws IOException {
if (jsonElement == null) {
if (!ModelApiResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null
@@ -129,22 +129,22 @@ public class ModelApiResponse {
}
}
/**
* Create an instance of ModelApiResponse given an JSON string
*
* @param jsonString JSON string
* @return An instance of ModelApiResponse
* @throws IOException if the JSON string is invalid with respect to ModelApiResponse
*/
/**
* Create an instance of ModelApiResponse given an JSON string
*
* @param jsonString JSON string
* @return An instance of ModelApiResponse
* @throws IOException if the JSON string is invalid with respect to ModelApiResponse
*/
public static ModelApiResponse fromJson(String jsonString) throws IOException {
return JSON.getGson().fromJson(jsonString, ModelApiResponse.class);
}
/**
* Convert an instance of ModelApiResponse to an JSON string
*
* @return JSON string
*/
/**
* Convert an instance of ModelApiResponse to an JSON string
*
* @return JSON string
*/
public String toJson() {
return JSON.getGson().toJson(this);
}

View File

@@ -78,12 +78,12 @@ public class Order {
openapiRequiredFields = new HashSet<String>();
}
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to Order
*/
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to Order
*/
public static void validateJsonElement(JsonElement jsonElement) throws IOException {
if (jsonElement == null) {
if (!Order.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null
@@ -129,22 +129,22 @@ public class Order {
}
}
/**
* Create an instance of Order given an JSON string
*
* @param jsonString JSON string
* @return An instance of Order
* @throws IOException if the JSON string is invalid with respect to Order
*/
/**
* Create an instance of Order given an JSON string
*
* @param jsonString JSON string
* @return An instance of Order
* @throws IOException if the JSON string is invalid with respect to Order
*/
public static Order fromJson(String jsonString) throws IOException {
return JSON.getGson().fromJson(jsonString, Order.class);
}
/**
* Convert an instance of Order to an JSON string
*
* @return JSON string
*/
/**
* Convert an instance of Order to an JSON string
*
* @return JSON string
*/
public String toJson() {
return JSON.getGson().toJson(this);
}

View File

@@ -78,12 +78,12 @@ public class Pet {
openapiRequiredFields = new HashSet<String>();
}
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to Pet
*/
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to Pet
*/
public static void validateJsonElement(JsonElement jsonElement) throws IOException {
if (jsonElement == null) {
if (!Pet.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null
@@ -129,22 +129,22 @@ public class Pet {
}
}
/**
* Create an instance of Pet given an JSON string
*
* @param jsonString JSON string
* @return An instance of Pet
* @throws IOException if the JSON string is invalid with respect to Pet
*/
/**
* Create an instance of Pet given an JSON string
*
* @param jsonString JSON string
* @return An instance of Pet
* @throws IOException if the JSON string is invalid with respect to Pet
*/
public static Pet fromJson(String jsonString) throws IOException {
return JSON.getGson().fromJson(jsonString, Pet.class);
}
/**
* Convert an instance of Pet to an JSON string
*
* @return JSON string
*/
/**
* Convert an instance of Pet to an JSON string
*
* @return JSON string
*/
public String toJson() {
return JSON.getGson().toJson(this);
}

View File

@@ -78,12 +78,12 @@ public class Tag {
openapiRequiredFields = new HashSet<String>();
}
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to Tag
*/
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to Tag
*/
public static void validateJsonElement(JsonElement jsonElement) throws IOException {
if (jsonElement == null) {
if (!Tag.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null
@@ -129,22 +129,22 @@ public class Tag {
}
}
/**
* Create an instance of Tag given an JSON string
*
* @param jsonString JSON string
* @return An instance of Tag
* @throws IOException if the JSON string is invalid with respect to Tag
*/
/**
* Create an instance of Tag given an JSON string
*
* @param jsonString JSON string
* @return An instance of Tag
* @throws IOException if the JSON string is invalid with respect to Tag
*/
public static Tag fromJson(String jsonString) throws IOException {
return JSON.getGson().fromJson(jsonString, Tag.class);
}
/**
* Convert an instance of Tag to an JSON string
*
* @return JSON string
*/
/**
* Convert an instance of Tag to an JSON string
*
* @return JSON string
*/
public String toJson() {
return JSON.getGson().toJson(this);
}

View File

@@ -78,12 +78,12 @@ public class User {
openapiRequiredFields = new HashSet<String>();
}
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to User
*/
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to User
*/
public static void validateJsonElement(JsonElement jsonElement) throws IOException {
if (jsonElement == null) {
if (!User.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null
@@ -129,22 +129,22 @@ public class User {
}
}
/**
* Create an instance of User given an JSON string
*
* @param jsonString JSON string
* @return An instance of User
* @throws IOException if the JSON string is invalid with respect to User
*/
/**
* Create an instance of User given an JSON string
*
* @param jsonString JSON string
* @return An instance of User
* @throws IOException if the JSON string is invalid with respect to User
*/
public static User fromJson(String jsonString) throws IOException {
return JSON.getGson().fromJson(jsonString, User.class);
}
/**
* Convert an instance of User to an JSON string
*
* @return JSON string
*/
/**
* Convert an instance of User to an JSON string
*
* @return JSON string
*/
public String toJson() {
return JSON.getGson().toJson(this);
}

View File

@@ -67,10 +67,10 @@ public class Category {
return this;
}
/**
/**
* Get id
* @return id
**/
*/
@javax.annotation.Nullable
public Long getId() {
return id;
@@ -86,10 +86,10 @@ public class Category {
return this;
}
/**
/**
* Get name
* @return name
**/
*/
@javax.annotation.Nullable
public String getName() {
return name;
@@ -154,12 +154,12 @@ public class Category {
openapiRequiredFields = new HashSet<String>();
}
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to Category
*/
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to Category
*/
public static void validateJsonElement(JsonElement jsonElement) throws IOException {
if (jsonElement == null) {
if (!Category.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null
@@ -209,22 +209,22 @@ public class Category {
}
}
/**
* Create an instance of Category given an JSON string
*
* @param jsonString JSON string
* @return An instance of Category
* @throws IOException if the JSON string is invalid with respect to Category
*/
/**
* Create an instance of Category given an JSON string
*
* @param jsonString JSON string
* @return An instance of Category
* @throws IOException if the JSON string is invalid with respect to Category
*/
public static Category fromJson(String jsonString) throws IOException {
return JSON.getGson().fromJson(jsonString, Category.class);
}
/**
* Convert an instance of Category to an JSON string
*
* @return JSON string
*/
/**
* Convert an instance of Category to an JSON string
*
* @return JSON string
*/
public String toJson() {
return JSON.getGson().toJson(this);
}

View File

@@ -71,10 +71,10 @@ public class ModelApiResponse {
return this;
}
/**
/**
* Get code
* @return code
**/
*/
@javax.annotation.Nullable
public Integer getCode() {
return code;
@@ -90,10 +90,10 @@ public class ModelApiResponse {
return this;
}
/**
/**
* Get type
* @return type
**/
*/
@javax.annotation.Nullable
public String getType() {
return type;
@@ -109,10 +109,10 @@ public class ModelApiResponse {
return this;
}
/**
/**
* Get message
* @return message
**/
*/
@javax.annotation.Nullable
public String getMessage() {
return message;
@@ -180,12 +180,12 @@ public class ModelApiResponse {
openapiRequiredFields = new HashSet<String>();
}
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to ModelApiResponse
*/
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to ModelApiResponse
*/
public static void validateJsonElement(JsonElement jsonElement) throws IOException {
if (jsonElement == null) {
if (!ModelApiResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null
@@ -238,22 +238,22 @@ public class ModelApiResponse {
}
}
/**
* Create an instance of ModelApiResponse given an JSON string
*
* @param jsonString JSON string
* @return An instance of ModelApiResponse
* @throws IOException if the JSON string is invalid with respect to ModelApiResponse
*/
/**
* Create an instance of ModelApiResponse given an JSON string
*
* @param jsonString JSON string
* @return An instance of ModelApiResponse
* @throws IOException if the JSON string is invalid with respect to ModelApiResponse
*/
public static ModelApiResponse fromJson(String jsonString) throws IOException {
return JSON.getGson().fromJson(jsonString, ModelApiResponse.class);
}
/**
* Convert an instance of ModelApiResponse to an JSON string
*
* @return JSON string
*/
/**
* Convert an instance of ModelApiResponse to an JSON string
*
* @return JSON string
*/
public String toJson() {
return JSON.getGson().toJson(this);
}

View File

@@ -138,10 +138,10 @@ public class Order {
return this;
}
/**
/**
* Get id
* @return id
**/
*/
@javax.annotation.Nullable
public Long getId() {
return id;
@@ -157,10 +157,10 @@ public class Order {
return this;
}
/**
/**
* Get petId
* @return petId
**/
*/
@javax.annotation.Nullable
public Long getPetId() {
return petId;
@@ -176,10 +176,10 @@ public class Order {
return this;
}
/**
/**
* Get quantity
* @return quantity
**/
*/
@javax.annotation.Nullable
public Integer getQuantity() {
return quantity;
@@ -195,10 +195,10 @@ public class Order {
return this;
}
/**
/**
* Get shipDate
* @return shipDate
**/
*/
@javax.annotation.Nullable
public OffsetDateTime getShipDate() {
return shipDate;
@@ -214,10 +214,10 @@ public class Order {
return this;
}
/**
/**
* Order Status
* @return status
**/
*/
@javax.annotation.Nullable
public StatusEnum getStatus() {
return status;
@@ -233,10 +233,10 @@ public class Order {
return this;
}
/**
/**
* Get complete
* @return complete
**/
*/
@javax.annotation.Nullable
public Boolean getComplete() {
return complete;
@@ -313,12 +313,12 @@ public class Order {
openapiRequiredFields = new HashSet<String>();
}
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to Order
*/
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to Order
*/
public static void validateJsonElement(JsonElement jsonElement) throws IOException {
if (jsonElement == null) {
if (!Order.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null
@@ -372,22 +372,22 @@ public class Order {
}
}
/**
* Create an instance of Order given an JSON string
*
* @param jsonString JSON string
* @return An instance of Order
* @throws IOException if the JSON string is invalid with respect to Order
*/
/**
* Create an instance of Order given an JSON string
*
* @param jsonString JSON string
* @return An instance of Order
* @throws IOException if the JSON string is invalid with respect to Order
*/
public static Order fromJson(String jsonString) throws IOException {
return JSON.getGson().fromJson(jsonString, Order.class);
}
/**
* Convert an instance of Order to an JSON string
*
* @return JSON string
*/
/**
* Convert an instance of Order to an JSON string
*
* @return JSON string
*/
public String toJson() {
return JSON.getGson().toJson(this);
}

View File

@@ -142,10 +142,10 @@ public class Pet {
return this;
}
/**
/**
* Get id
* @return id
**/
*/
@javax.annotation.Nullable
public Long getId() {
return id;
@@ -161,10 +161,10 @@ public class Pet {
return this;
}
/**
/**
* Get category
* @return category
**/
*/
@javax.annotation.Nullable
public Category getCategory() {
return category;
@@ -180,10 +180,10 @@ public class Pet {
return this;
}
/**
/**
* Get name
* @return name
**/
*/
@javax.annotation.Nonnull
public String getName() {
return name;
@@ -207,10 +207,10 @@ public class Pet {
return this;
}
/**
/**
* Get photoUrls
* @return photoUrls
**/
*/
@javax.annotation.Nonnull
public List<String> getPhotoUrls() {
return photoUrls;
@@ -234,10 +234,10 @@ public class Pet {
return this;
}
/**
/**
* Get tags
* @return tags
**/
*/
@javax.annotation.Nullable
public List<Tag> getTags() {
return tags;
@@ -254,11 +254,11 @@ public class Pet {
return this;
}
/**
/**
* pet status in the store
* @return status
* @deprecated
**/
*/
@Deprecated
@javax.annotation.Nullable
public StatusEnum getStatus() {
@@ -339,12 +339,12 @@ public class Pet {
openapiRequiredFields.add("photoUrls");
}
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to Pet
*/
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to Pet
*/
public static void validateJsonElement(JsonElement jsonElement) throws IOException {
if (jsonElement == null) {
if (!Pet.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null
@@ -432,22 +432,22 @@ public class Pet {
}
}
/**
* Create an instance of Pet given an JSON string
*
* @param jsonString JSON string
* @return An instance of Pet
* @throws IOException if the JSON string is invalid with respect to Pet
*/
/**
* Create an instance of Pet given an JSON string
*
* @param jsonString JSON string
* @return An instance of Pet
* @throws IOException if the JSON string is invalid with respect to Pet
*/
public static Pet fromJson(String jsonString) throws IOException {
return JSON.getGson().fromJson(jsonString, Pet.class);
}
/**
* Convert an instance of Pet to an JSON string
*
* @return JSON string
*/
/**
* Convert an instance of Pet to an JSON string
*
* @return JSON string
*/
public String toJson() {
return JSON.getGson().toJson(this);
}

View File

@@ -67,10 +67,10 @@ public class Tag {
return this;
}
/**
/**
* Get id
* @return id
**/
*/
@javax.annotation.Nullable
public Long getId() {
return id;
@@ -86,10 +86,10 @@ public class Tag {
return this;
}
/**
/**
* Get name
* @return name
**/
*/
@javax.annotation.Nullable
public String getName() {
return name;
@@ -154,12 +154,12 @@ public class Tag {
openapiRequiredFields = new HashSet<String>();
}
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to Tag
*/
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to Tag
*/
public static void validateJsonElement(JsonElement jsonElement) throws IOException {
if (jsonElement == null) {
if (!Tag.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null
@@ -209,22 +209,22 @@ public class Tag {
}
}
/**
* Create an instance of Tag given an JSON string
*
* @param jsonString JSON string
* @return An instance of Tag
* @throws IOException if the JSON string is invalid with respect to Tag
*/
/**
* Create an instance of Tag given an JSON string
*
* @param jsonString JSON string
* @return An instance of Tag
* @throws IOException if the JSON string is invalid with respect to Tag
*/
public static Tag fromJson(String jsonString) throws IOException {
return JSON.getGson().fromJson(jsonString, Tag.class);
}
/**
* Convert an instance of Tag to an JSON string
*
* @return JSON string
*/
/**
* Convert an instance of Tag to an JSON string
*
* @return JSON string
*/
public String toJson() {
return JSON.getGson().toJson(this);
}

View File

@@ -91,10 +91,10 @@ public class User {
return this;
}
/**
/**
* Get id
* @return id
**/
*/
@javax.annotation.Nullable
public Long getId() {
return id;
@@ -110,10 +110,10 @@ public class User {
return this;
}
/**
/**
* Get username
* @return username
**/
*/
@javax.annotation.Nullable
public String getUsername() {
return username;
@@ -129,10 +129,10 @@ public class User {
return this;
}
/**
/**
* Get firstName
* @return firstName
**/
*/
@javax.annotation.Nullable
public String getFirstName() {
return firstName;
@@ -148,10 +148,10 @@ public class User {
return this;
}
/**
/**
* Get lastName
* @return lastName
**/
*/
@javax.annotation.Nullable
public String getLastName() {
return lastName;
@@ -167,10 +167,10 @@ public class User {
return this;
}
/**
/**
* Get email
* @return email
**/
*/
@javax.annotation.Nullable
public String getEmail() {
return email;
@@ -186,10 +186,10 @@ public class User {
return this;
}
/**
/**
* Get password
* @return password
**/
*/
@javax.annotation.Nullable
public String getPassword() {
return password;
@@ -205,10 +205,10 @@ public class User {
return this;
}
/**
/**
* Get phone
* @return phone
**/
*/
@javax.annotation.Nullable
public String getPhone() {
return phone;
@@ -224,10 +224,10 @@ public class User {
return this;
}
/**
/**
* User Status
* @return userStatus
**/
*/
@javax.annotation.Nullable
public Integer getUserStatus() {
return userStatus;
@@ -310,12 +310,12 @@ public class User {
openapiRequiredFields = new HashSet<String>();
}
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to User
*/
/**
* Validates the JSON Element and throws an exception if issues found
*
* @param jsonElement JSON Element
* @throws IOException if the JSON Element is invalid with respect to User
*/
public static void validateJsonElement(JsonElement jsonElement) throws IOException {
if (jsonElement == null) {
if (!User.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null
@@ -380,22 +380,22 @@ public class User {
}
}
/**
* Create an instance of User given an JSON string
*
* @param jsonString JSON string
* @return An instance of User
* @throws IOException if the JSON string is invalid with respect to User
*/
/**
* Create an instance of User given an JSON string
*
* @param jsonString JSON string
* @return An instance of User
* @throws IOException if the JSON string is invalid with respect to User
*/
public static User fromJson(String jsonString) throws IOException {
return JSON.getGson().fromJson(jsonString, User.class);
}
/**
* Convert an instance of User to an JSON string
*
* @return JSON string
*/
/**
* Convert an instance of User to an JSON string
*
* @return JSON string
*/
public String toJson() {
return JSON.getGson().toJson(this);
}