jimu-decompiled/sources/com/google/gson/FieldNamingPolicy.java
2025-05-13 19:24:51 +02:00

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