in jetbrains-core/src/software/aws/toolkits/jetbrains/core/tools/SemanticVersion.kt [17:35]
fun parse(version: String): SemanticVersion {
val parts = version.split(".")
if (parts.size != 3) {
throw IllegalArgumentException("[$version] not in the format of MAJOR.MINOR.PATCH")
}
try {
val preReleaseStart = parts[2].indexOfFirst { it == '+' || it == '-' }
val patchStr = if (preReleaseStart >= 0) {
parts[2].substring(0, preReleaseStart)
} else {
parts[2]
}
return SemanticVersion(parts[0].toInt(), parts[1].toInt(), patchStr.toInt())
} catch (e: Exception) {
throw IllegalArgumentException("[$version] could not be parsed", e)
}
}