in tools/src/main/scala/magnolify/tools/SchemaPrinter.scala [132:153]
private[tools] def toUpperCamel(name: String): String = {
var allLower = true
var allUpper = true
var hasHyphen = false
var hasUnderscore = false
name.foreach { c =>
if (c.isLower) allUpper = false
if (c.isUpper) allLower = false
if (c == '-') hasHyphen = true
if (c == '_') hasUnderscore = true
}
val format = (hasHyphen, hasUnderscore) match {
case (false, false) =>
if (name.head.isUpper) CaseFormat.UPPER_CAMEL else CaseFormat.LOWER_CAMEL
case (true, false) if allLower => CaseFormat.LOWER_HYPHEN
case (false, true) if allLower => CaseFormat.LOWER_UNDERSCORE
case (false, true) if allUpper => CaseFormat.UPPER_UNDERSCORE
case _ => throw new IllegalArgumentException(s"Unsupported case format: $name")
}
format.to(CaseFormat.UPPER_CAMEL, name)
}