in thrifty-schema/src/main/kotlin/com/microsoft/thrifty/schema/FieldNamingPolicy.kt [58:81]
override fun apply(name: String): String {
val caseFormat = caseFormatOf(name)
if (caseFormat != null) {
val formattedName = caseFormat.to(CaseFormat.LOWER_CAMEL, name)
// Handle acronym as camel case made it lower case.
return if (name.length > 1
&& formattedName.length > 1
&& Character.isUpperCase(name[0])
&& Character.isUpperCase(name[1])
&& caseFormat !== CaseFormat.UPPER_UNDERSCORE) {
name[0] + formattedName.substring(1)
} else {
formattedName
}
}
// Unknown case format. Handle the acronym.
if (Character.isUpperCase(name[0])) {
if (name.length == 1 || !Character.isUpperCase(name[1])) {
return Character.toLowerCase(name[0]) + name.substring(1)
}
}
return name
}