From 8ca279f6f7514fea78110f30df841a0b4ab87b0a Mon Sep 17 00:00:00 2001 From: wing328 Date: Thu, 17 Mar 2016 12:11:27 +0800 Subject: [PATCH] better handling of model name starting with number for android --- .../languages/AndroidClientCodegen.java | 7 ++ .../main/java/io/swagger/client/JsonUtil.java | 8 ++ .../client/model/Model200Response.java | 36 ++++++ .../main/java/io/swagger/client/JsonUtil.java | 8 ++ .../client/model/InlineResponse200.java | 112 ++++++++++++++++++ .../client/model/Model200Response.java | 36 ++++++ .../io/swagger/client/model/ModelReturn.java | 36 ++++++ .../java/io/swagger/client/model/Name.java | 36 ++++++ .../client/model/SpecialModelName.java | 36 ++++++ 9 files changed, 315 insertions(+) create mode 100644 samples/client/petstore/android/default/src/main/java/io/swagger/client/model/Model200Response.java create mode 100644 samples/client/petstore/android/volley/src/main/java/io/swagger/client/model/InlineResponse200.java create mode 100644 samples/client/petstore/android/volley/src/main/java/io/swagger/client/model/Model200Response.java create mode 100644 samples/client/petstore/android/volley/src/main/java/io/swagger/client/model/ModelReturn.java create mode 100644 samples/client/petstore/android/volley/src/main/java/io/swagger/client/model/Name.java create mode 100644 samples/client/petstore/android/volley/src/main/java/io/swagger/client/model/SpecialModelName.java diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AndroidClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AndroidClientCodegen.java index 3ef4e2d8cec..c0bead5c695 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AndroidClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AndroidClientCodegen.java @@ -208,6 +208,13 @@ public class AndroidClientCodegen extends DefaultCodegen implements CodegenConfi return modelName; } + // model name starts with number + if (name.matches("^\\d.*")) { + String modelName = "Model" + name; // e.g. 200Response => Model200Response (after camelize) + LOGGER.warn(name + " (model name starts with number) cannot be used as model name. Renamed to " + modelName); + return modelName; + } + return name; } diff --git a/samples/client/petstore/android/default/src/main/java/io/swagger/client/JsonUtil.java b/samples/client/petstore/android/default/src/main/java/io/swagger/client/JsonUtil.java index 1335ccd320f..49ce07a07ae 100644 --- a/samples/client/petstore/android/default/src/main/java/io/swagger/client/JsonUtil.java +++ b/samples/client/petstore/android/default/src/main/java/io/swagger/client/JsonUtil.java @@ -43,6 +43,10 @@ public class JsonUtil { return new TypeToken>(){}.getType(); } + if ("Model200Response".equalsIgnoreCase(className)) { + return new TypeToken>(){}.getType(); + } + if ("ModelReturn".equalsIgnoreCase(className)) { return new TypeToken>(){}.getType(); } @@ -85,6 +89,10 @@ public class JsonUtil { return new TypeToken(){}.getType(); } + if ("Model200Response".equalsIgnoreCase(className)) { + return new TypeToken(){}.getType(); + } + if ("ModelReturn".equalsIgnoreCase(className)) { return new TypeToken(){}.getType(); } diff --git a/samples/client/petstore/android/default/src/main/java/io/swagger/client/model/Model200Response.java b/samples/client/petstore/android/default/src/main/java/io/swagger/client/model/Model200Response.java new file mode 100644 index 00000000000..4a6e58b2a5e --- /dev/null +++ b/samples/client/petstore/android/default/src/main/java/io/swagger/client/model/Model200Response.java @@ -0,0 +1,36 @@ +package io.swagger.client.model; + + +import io.swagger.annotations.*; +import com.google.gson.annotations.SerializedName; + + +@ApiModel(description = "") +public class Model200Response { + + @SerializedName("name") + private Integer name = null; + + + /** + **/ + @ApiModelProperty(value = "") + public Integer getName() { + return name; + } + public void setName(Integer name) { + this.name = name; + } + + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Model200Response {\n"); + + sb.append(" name: ").append(name).append("\n"); + sb.append("}\n"); + return sb.toString(); + } +} diff --git a/samples/client/petstore/android/volley/src/main/java/io/swagger/client/JsonUtil.java b/samples/client/petstore/android/volley/src/main/java/io/swagger/client/JsonUtil.java index 1335ccd320f..49ce07a07ae 100644 --- a/samples/client/petstore/android/volley/src/main/java/io/swagger/client/JsonUtil.java +++ b/samples/client/petstore/android/volley/src/main/java/io/swagger/client/JsonUtil.java @@ -43,6 +43,10 @@ public class JsonUtil { return new TypeToken>(){}.getType(); } + if ("Model200Response".equalsIgnoreCase(className)) { + return new TypeToken>(){}.getType(); + } + if ("ModelReturn".equalsIgnoreCase(className)) { return new TypeToken>(){}.getType(); } @@ -85,6 +89,10 @@ public class JsonUtil { return new TypeToken(){}.getType(); } + if ("Model200Response".equalsIgnoreCase(className)) { + return new TypeToken(){}.getType(); + } + if ("ModelReturn".equalsIgnoreCase(className)) { return new TypeToken(){}.getType(); } diff --git a/samples/client/petstore/android/volley/src/main/java/io/swagger/client/model/InlineResponse200.java b/samples/client/petstore/android/volley/src/main/java/io/swagger/client/model/InlineResponse200.java new file mode 100644 index 00000000000..c4fd8ce357d --- /dev/null +++ b/samples/client/petstore/android/volley/src/main/java/io/swagger/client/model/InlineResponse200.java @@ -0,0 +1,112 @@ +package io.swagger.client.model; + +import io.swagger.client.model.Tag; +import java.util.*; + +import io.swagger.annotations.*; +import com.google.gson.annotations.SerializedName; + + +@ApiModel(description = "") +public class InlineResponse200 { + + @SerializedName("tags") + private List tags = null; + @SerializedName("id") + private Long id = null; + @SerializedName("category") + private Object category = null; + public enum StatusEnum { + available, pending, sold, + }; + @SerializedName("status") + private StatusEnum status = null; + @SerializedName("name") + private String name = null; + @SerializedName("photoUrls") + private List photoUrls = null; + + + /** + **/ + @ApiModelProperty(value = "") + public List getTags() { + return tags; + } + public void setTags(List tags) { + this.tags = tags; + } + + + /** + **/ + @ApiModelProperty(required = true, value = "") + public Long getId() { + return id; + } + public void setId(Long id) { + this.id = id; + } + + + /** + **/ + @ApiModelProperty(value = "") + public Object getCategory() { + return category; + } + public void setCategory(Object category) { + this.category = category; + } + + + /** + * pet status in the store + **/ + @ApiModelProperty(value = "pet status in the store") + public StatusEnum getStatus() { + return status; + } + public void setStatus(StatusEnum status) { + this.status = status; + } + + + /** + **/ + @ApiModelProperty(value = "") + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + + + /** + **/ + @ApiModelProperty(value = "") + public List getPhotoUrls() { + return photoUrls; + } + public void setPhotoUrls(List photoUrls) { + this.photoUrls = photoUrls; + } + + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class InlineResponse200 {\n"); + + sb.append(" tags: ").append(tags).append("\n"); + sb.append(" id: ").append(id).append("\n"); + sb.append(" category: ").append(category).append("\n"); + sb.append(" status: ").append(status).append("\n"); + sb.append(" name: ").append(name).append("\n"); + sb.append(" photoUrls: ").append(photoUrls).append("\n"); + sb.append("}\n"); + return sb.toString(); + } +} diff --git a/samples/client/petstore/android/volley/src/main/java/io/swagger/client/model/Model200Response.java b/samples/client/petstore/android/volley/src/main/java/io/swagger/client/model/Model200Response.java new file mode 100644 index 00000000000..4a6e58b2a5e --- /dev/null +++ b/samples/client/petstore/android/volley/src/main/java/io/swagger/client/model/Model200Response.java @@ -0,0 +1,36 @@ +package io.swagger.client.model; + + +import io.swagger.annotations.*; +import com.google.gson.annotations.SerializedName; + + +@ApiModel(description = "") +public class Model200Response { + + @SerializedName("name") + private Integer name = null; + + + /** + **/ + @ApiModelProperty(value = "") + public Integer getName() { + return name; + } + public void setName(Integer name) { + this.name = name; + } + + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Model200Response {\n"); + + sb.append(" name: ").append(name).append("\n"); + sb.append("}\n"); + return sb.toString(); + } +} diff --git a/samples/client/petstore/android/volley/src/main/java/io/swagger/client/model/ModelReturn.java b/samples/client/petstore/android/volley/src/main/java/io/swagger/client/model/ModelReturn.java new file mode 100644 index 00000000000..24763f3acb4 --- /dev/null +++ b/samples/client/petstore/android/volley/src/main/java/io/swagger/client/model/ModelReturn.java @@ -0,0 +1,36 @@ +package io.swagger.client.model; + + +import io.swagger.annotations.*; +import com.google.gson.annotations.SerializedName; + + +@ApiModel(description = "") +public class ModelReturn { + + @SerializedName("return") + private Integer _return = null; + + + /** + **/ + @ApiModelProperty(value = "") + public Integer getReturn() { + return _return; + } + public void setReturn(Integer _return) { + this._return = _return; + } + + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ModelReturn {\n"); + + sb.append(" _return: ").append(_return).append("\n"); + sb.append("}\n"); + return sb.toString(); + } +} diff --git a/samples/client/petstore/android/volley/src/main/java/io/swagger/client/model/Name.java b/samples/client/petstore/android/volley/src/main/java/io/swagger/client/model/Name.java new file mode 100644 index 00000000000..5c308de749f --- /dev/null +++ b/samples/client/petstore/android/volley/src/main/java/io/swagger/client/model/Name.java @@ -0,0 +1,36 @@ +package io.swagger.client.model; + + +import io.swagger.annotations.*; +import com.google.gson.annotations.SerializedName; + + +@ApiModel(description = "") +public class Name { + + @SerializedName("name") + private Integer name = null; + + + /** + **/ + @ApiModelProperty(value = "") + public Integer getName() { + return name; + } + public void setName(Integer name) { + this.name = name; + } + + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Name {\n"); + + sb.append(" name: ").append(name).append("\n"); + sb.append("}\n"); + return sb.toString(); + } +} diff --git a/samples/client/petstore/android/volley/src/main/java/io/swagger/client/model/SpecialModelName.java b/samples/client/petstore/android/volley/src/main/java/io/swagger/client/model/SpecialModelName.java new file mode 100644 index 00000000000..d804bdd8765 --- /dev/null +++ b/samples/client/petstore/android/volley/src/main/java/io/swagger/client/model/SpecialModelName.java @@ -0,0 +1,36 @@ +package io.swagger.client.model; + + +import io.swagger.annotations.*; +import com.google.gson.annotations.SerializedName; + + +@ApiModel(description = "") +public class SpecialModelName { + + @SerializedName("$special[property.name]") + private Long specialPropertyName = null; + + + /** + **/ + @ApiModelProperty(value = "") + public Long getSpecialPropertyName() { + return specialPropertyName; + } + public void setSpecialPropertyName(Long specialPropertyName) { + this.specialPropertyName = specialPropertyName; + } + + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SpecialModelName {\n"); + + sb.append(" specialPropertyName: ").append(specialPropertyName).append("\n"); + sb.append("}\n"); + return sb.toString(); + } +}