in codegen/src/main/scala/org/apache/pekko/grpc/gen/javadsl/Service.scala [76:98]
private def hasConflictingClassName(d: FileDescriptor, className: String): Boolean =
d.findServiceByName(className) != null ||
d.findMessageTypeByName(className) != null ||
d.findEnumTypeByName(className) != null
private[javadsl] def protoName(t: FileDescriptor) =
t.getName.replaceAll("\\.proto", "").split("/").last
private[javadsl] def toCamelCase(name: String): String =
if (name.isEmpty) ""
else toCamelCaseRec(name, 0, new StringBuilder(name.length), true)
@tailrec
private def toCamelCaseRec(in: String, idx: Int, out: StringBuilder, capNext: Boolean): String = {
if (idx >= in.length) out.toString
else {
val head = in.charAt(idx)
if (head.isLetter)
toCamelCaseRec(in, idx + 1, out.append(if (capNext) head.toUpper else head), false)
else
toCamelCaseRec(in, idx + 1, if (head.isDigit) out.append(head) else out, true)
}
}