package com.google.gson; import java.lang.reflect.Field; import java.util.Locale; /* loaded from: classes.dex */ public enum FieldNamingPolicy implements FieldNamingStrategy { IDENTITY { // from class: com.google.gson.FieldNamingPolicy.1 @Override // com.google.gson.FieldNamingStrategy public String translateName(Field field) { return field.getName(); } }, UPPER_CAMEL_CASE { // from class: com.google.gson.FieldNamingPolicy.2 @Override // com.google.gson.FieldNamingStrategy public String translateName(Field field) { return FieldNamingPolicy.upperCaseFirstLetter(field.getName()); } }, UPPER_CAMEL_CASE_WITH_SPACES { // from class: com.google.gson.FieldNamingPolicy.3 @Override // com.google.gson.FieldNamingStrategy public String translateName(Field field) { return FieldNamingPolicy.upperCaseFirstLetter(FieldNamingPolicy.separateCamelCase(field.getName(), " ")); } }, LOWER_CASE_WITH_UNDERSCORES { // from class: com.google.gson.FieldNamingPolicy.4 @Override // com.google.gson.FieldNamingStrategy public String translateName(Field field) { return FieldNamingPolicy.separateCamelCase(field.getName(), "_").toLowerCase(Locale.ENGLISH); } }, LOWER_CASE_WITH_DASHES { // from class: com.google.gson.FieldNamingPolicy.5 @Override // com.google.gson.FieldNamingStrategy public String translateName(Field field) { return FieldNamingPolicy.separateCamelCase(field.getName(), "-").toLowerCase(Locale.ENGLISH); } }; private static String modifyString(char c, String str, int i) { if (i >= str.length()) { return String.valueOf(c); } return c + str.substring(i); } static String separateCamelCase(String str, String str2) { StringBuilder sb = new StringBuilder(); int length = str.length(); for (int i = 0; i < length; i++) { char charAt = str.charAt(i); if (Character.isUpperCase(charAt) && sb.length() != 0) { sb.append(str2); } sb.append(charAt); } return sb.toString(); } static String upperCaseFirstLetter(String str) { StringBuilder sb = new StringBuilder(); int i = 0; char charAt = str.charAt(0); int length = str.length(); while (i < length - 1 && !Character.isLetter(charAt)) { sb.append(charAt); i++; charAt = str.charAt(i); } if (Character.isUpperCase(charAt)) { return str; } sb.append(modifyString(Character.toUpperCase(charAt), str, i + 1)); return sb.toString(); } }