From fd602af1804590703d0cadfb1c13d50b703e5191 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Mon, 23 Mar 2015 15:41:24 +0800 Subject: [PATCH] better naming convention for android-java codegen --- .../languages/AndroidClientCodegen.java | 47 ++++++++++++++++++- .../resources/android-java/model.mustache | 2 +- .../java/io/swagger/client/api/PetApi.java | 4 +- 3 files changed, 49 insertions(+), 4 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/AndroidClientCodegen.java b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/AndroidClientCodegen.java index 72e0985d229..3fda0a06d6c 100644 --- a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/AndroidClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/AndroidClientCodegen.java @@ -118,4 +118,49 @@ public class AndroidClientCodegen extends DefaultCodegen implements CodegenConfi type = swaggerType; return toModelName(type); } -} \ No newline at end of file + + @Override + public String toVarName(String name) { + // replace - with _ e.g. created-at => created_at + name = name.replaceAll("-", "_"); + + // if it's all uppper case, do nothing + if (name.matches("^[A-Z_]*$")) + return name; + + // camelize (lower first character) the variable name + // pet_id => petId + name = camelize(name, true); + + // for reserved word or word starting with number, append _ + if(reservedWords.contains(name) || name.matches("^\\d.*")) + name = escapeReservedWord(name); + + return name; + } + + @Override + public String toParamName(String name) { + // should be the same as variable name + return toVarName(name); + } + + @Override + public String toModelName(String name) { + // model name cannot use reserved keyword, e.g. return + if(reservedWords.contains(name)) + throw new RuntimeException(name + " (reserved word) cannot be used as a model name"); + + // camelize the model name + // phone_number => PhoneNumber + return camelize(name); + } + + @Override + public String toModelFilename(String name) { + // should be the same as the model name + return toModelName(name); + } + + +} diff --git a/modules/swagger-codegen/src/main/resources/android-java/model.mustache b/modules/swagger-codegen/src/main/resources/android-java/model.mustache index 48da4b2c7ff..ea9f88cb48c 100644 --- a/modules/swagger-codegen/src/main/resources/android-java/model.mustache +++ b/modules/swagger-codegen/src/main/resources/android-java/model.mustache @@ -27,7 +27,7 @@ public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} { * maximum: {{maximum}}{{/maximum}} **/ @ApiModelProperty(required = {{required}}, value = "{{{description}}}") - @JsonProperty("{{name}}") + @JsonProperty("{{baseName}}") public {{{datatypeWithEnum}}} {{getter}}() { return {{name}}; } diff --git a/samples/client/petstore/android-java/src/main/java/io/swagger/client/api/PetApi.java b/samples/client/petstore/android-java/src/main/java/io/swagger/client/api/PetApi.java index 41e10687ce7..41e1427b3cd 100644 --- a/samples/client/petstore/android-java/src/main/java/io/swagger/client/api/PetApi.java +++ b/samples/client/petstore/android-java/src/main/java/io/swagger/client/api/PetApi.java @@ -383,7 +383,7 @@ public class PetApi { } - public void deletePet (String api_key, Long petId) throws ApiException { + public void deletePet (String apiKey, Long petId) throws ApiException { Object postBody = null; @@ -400,7 +400,7 @@ public class PetApi { - headerParams.put("api_key", ApiInvoker.parameterToString(api_key)); + headerParams.put("api_key", ApiInvoker.parameterToString(apiKey)); String[] contentTypes = {