private static String getName(final String str, final boolean isField) {
StringBuilder result = new StringBuilder();
boolean isDelimChar = false;
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (i == 0) {
if (c == '0' || c == '1' || c == '2' || c == '3' || c == '4' || c == '5' || c == '6' || c == '7' || c == '8' || c == '9') {
result.append(isField ? "f" : "T");
result.append(c);
} else {
result.append(isField ? Character.toLowerCase(c) : Character.toUpperCase(c));
}
continue;
} else if (i > 0 && (c == '_' || c == '-' || c == '\\' || c == '/') || c == '.') {
isDelimChar = true;
continue;
}
if (isDelimChar) {
result.append(Character.toUpperCase(c));
isDelimChar = false;
} else {
if (i > 1 && Character.isLowerCase(str.charAt(i - 1)) && Character.isUpperCase(c)) {
result.append(c);
} else {
result.append(Character.toLowerCase(c));
}
}
}
if (ReservedWords.RESERVED_JAVA_KEYWORDS.contains(res ult.toString())) {
result.append("1");
}
return result.toString();
}