private[tools] def toUpperCamel()

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