fun parse()

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