Extract utility methods to the StringUtil class

and ignore case when comparing Accept/Content-Type
This commit is contained in:
xhh 2015-05-25 12:29:41 +08:00
parent 141b580c8c
commit fff8972a77
3 changed files with 32 additions and 7 deletions

View File

@ -55,6 +55,8 @@ public class JavaClientCodegen extends DefaultCodegen implements CodegenConfig {
(sourceFolder + File.separator + invokerPackage).replace(".", java.io.File.separator), "ApiInvoker.java"));
supportingFiles.add(new SupportingFile("JsonUtil.mustache",
(sourceFolder + File.separator + invokerPackage).replace(".", java.io.File.separator), "JsonUtil.java"));
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"));

View File

@ -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();
}
}

View File

@ -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];
}