From fff8972a77a1042c8366907f66484e9a5ba51e54 Mon Sep 17 00:00:00 2001 From: xhh Date: Mon, 25 May 2015 12:29:41 +0800 Subject: [PATCH] Extract utility methods to the StringUtil class and ignore case when comparing Accept/Content-Type --- .../codegen/languages/JavaClientCodegen.java | 8 ++++--- .../main/resources/Java/StringUtil.mustache | 23 +++++++++++++++++++ .../main/resources/Java/apiInvoker.mustache | 8 +++---- 3 files changed, 32 insertions(+), 7 deletions(-) create mode 100644 modules/swagger-codegen/src/main/resources/Java/StringUtil.mustache diff --git a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/JavaClientCodegen.java b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/JavaClientCodegen.java index 7c0ac7422ff..ee1af833ad4 100644 --- a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/JavaClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/JavaClientCodegen.java @@ -51,11 +51,13 @@ public class JavaClientCodegen extends DefaultCodegen implements CodegenConfig { additionalProperties.put("artifactVersion", artifactVersion); supportingFiles.add(new SupportingFile("pom.mustache", "", "pom.xml")); - supportingFiles.add(new SupportingFile("apiInvoker.mustache", + supportingFiles.add(new SupportingFile("apiInvoker.mustache", (sourceFolder + File.separator + invokerPackage).replace(".", java.io.File.separator), "ApiInvoker.java")); - supportingFiles.add(new SupportingFile("JsonUtil.mustache", + supportingFiles.add(new SupportingFile("JsonUtil.mustache", (sourceFolder + File.separator + invokerPackage).replace(".", java.io.File.separator), "JsonUtil.java")); - supportingFiles.add(new SupportingFile("apiException.mustache", + supportingFiles.add(new SupportingFile("StringUtil.mustache", + (sourceFolder + File.separator + invokerPackage).replace(".", java.io.File.separator), "StringUtil.java")); + supportingFiles.add(new SupportingFile("apiException.mustache", (sourceFolder + File.separator + invokerPackage).replace(".", java.io.File.separator), "ApiException.java")); languageSpecificPrimitives = new HashSet( diff --git a/modules/swagger-codegen/src/main/resources/Java/StringUtil.mustache b/modules/swagger-codegen/src/main/resources/Java/StringUtil.mustache new file mode 100644 index 00000000000..536c0b577e4 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/Java/StringUtil.mustache @@ -0,0 +1,23 @@ +package {{invokerPackage}}; + +public class StringUtil { + public static boolean containsIgnoreCase(String[] array, String value) { + for (String str : array) { + if (value == null && str == null) return true; + if (value != null && value.equalsIgnoreCase(str)) return true; + } + return false; + } + + public static String join(String[] array, String separator) { + int len = array.length; + if (len == 0) return ""; + + StringBuilder out = new StringBuilder(); + out.append(array[0]); + for (int i = 1; i < len; i++) { + out.append(separator).append(array[i]); + } + return out.toString(); + } +} diff --git a/modules/swagger-codegen/src/main/resources/Java/apiInvoker.mustache b/modules/swagger-codegen/src/main/resources/Java/apiInvoker.mustache index a013a968ccb..fdfde75133f 100644 --- a/modules/swagger-codegen/src/main/resources/Java/apiInvoker.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/apiInvoker.mustache @@ -109,13 +109,13 @@ public class ApiInvoker { public static String selectHeaderAccept(String[] accepts) { if (accepts.length == 0) return "application/json"; - if (Arrays.asList(accepts).contains("application/json")) return "application/json"; - return joinString(accepts, ","); + if (StringUtil.containsIgnoreCase(accepts, "application/json")) return "application/json"; + return StringUtil.join(accepts, ","); } public static String selectHeaderContentType(String[] contentTypes) { if (contentTypes.length == 0) return "application/json"; - if (Arrays.asList(contentTypes).contains("application/json")) return "application/json"; + if (StringUtil.containsIgnoreCase(contentTypes, "application/json")) return "application/json"; return contentTypes[0]; } @@ -323,4 +323,4 @@ public class ApiInvoker { } return hostMap.get(host); } -} \ No newline at end of file +}