swagger-codegen-generators
swagger-codegen-generators copied to clipboard
[Java] Enum String scheme generates invalid enum class
openapi: 3.0.1
info:
version: 1.0.0
title: Test
servers:
- url: /
tags:
- name: test
paths:
/repository:
get:
tags:
- test
operationId: test
responses:
200:
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/requestStatus'
components:
schemas:
requestStatus:
type: string
enum: [ a,b,c ]
The above specification, generates the following enum RequestStatus class:
/*
* Test
* No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
*
* OpenAPI spec version: 1.0.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
* https://github.com/swagger-api/swagger-codegen.git
* Do not edit the class manually.
*/
package io.model9.appextract.openapi.models;
import java.util.Objects;
import java.util.Arrays;
import com.google.gson.annotations.SerializedName;
import javax.validation.constraints.*;
import javax.validation.Valid;
import java.io.IOException;
import com.google.gson.TypeAdapter;
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
/**
* Gets or Sets requestStatus
*/
@JsonAdapter(RequestStatus.Adapter.class)
public enum RequestStatus {
A("a"),
B("b"),
C("c");
private String value;
RequestStatus(String value) {
this.value = value;
}
public String getValue() {
return value;
}
@Override
public String toString() {
return String.valueOf(value);
}
public static RequestStatus fromValue(String input) {
for (RequestStatus b : RequestStatus.values()) {
if (b.value.equals(input)) {
return b;
}
}
return null;
}
public static class Adapter extends TypeAdapter<RequestStatus> {
@Override
public void write(final JsonWriter jsonWriter, final RequestStatus enumeration) throws IOException {
jsonWriter.value(String.valueOf(enumeration.getValue()));
}
@Override
public RequestStatus read(final JsonReader jsonReader) throws IOException {
Object value = jsonReader.nextString();
return RequestStatus.fromValue(()(value));
}
}
}
Note the last return line in the class:
return RequestStatus.fromValue(()(value));
I'm using the org.hidetake.swagger.generator gradle plugin and io.swagger.codegen.v3:swagger-codegen-cli:3.0.30