76 lines
2.7 KiB
Java
76 lines
2.7 KiB
Java
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();
|
|
}
|
|
}
|