package com.google.gson;
import java.lang.reflect.Field;
public enum FieldNamingPolicy
implements FieldNamingStrategy
{
IDENTITY,
UPPER_CAMEL_CASE,
UPPER_CAMEL_CASE_WITH_SPACES,
LOWER_CASE_WITH_UNDERSCORES,
LOWER_CASE_WITH_DASHES;
private static String separateCamelCase(String name, String separator)
{
StringBuilder translation = new StringBuilder();
for (int i = 0; i < name.length(); i++) {
char character = name.charAt(i);
if ((Character.isUpperCase(character)) && (translation.length() != 0)) {
translation.append(separator);
}
translation.append(character);
}
return translation.toString();
}
private static String upperCaseFirstLetter(String name)
{
StringBuilder fieldNameBuilder = new StringBuilder();
int index = 0;
char firstCharacter = name.charAt(index);
while ((index < name.length() - 1) &&
(!Character.isLetter(firstCharacter)))
{
fieldNameBuilder.append(firstCharacter);
firstCharacter = name.charAt(++index);
}
if (index == name.length()) {
return fieldNameBuilder.toString();
}
if (!Character.isUpperCase(firstCharacter)) {
String modifiedTarget = modifyString(Character.toUpperCase(firstCharacter), name, ++index);
return modifiedTarget;
}
return name;
}
private static String modifyString(char firstCharacter, String srcString, int indexOfSubstring)
{
return indexOfSubstring < srcString.length() ? firstCharacter + srcString.substring(indexOfSubstring) : String.valueOf(firstCharacter);
}
}