in tools/javac/Api.java [177:195]
public record Version(int major, int minor, int patch) implements Serializable {
public static Version parse(String value) {
String[] c = value.split("\\.");
if (c.length != 3) throw new IllegalArgumentException("Invalid version format");
return new Version(parseComponent(c[0]), parseComponent(c[1]), parseComponent(c[2]));
}
private static int parseComponent(String value) {
try {
if (value.length() > 0 && value.charAt(0) != '+') return Integer.parseUnsignedInt(value);
} catch (NumberFormatException ignore) {}
throw new IllegalArgumentException("Invalid version component: " + value);
}
@Override
public String toString() {
return major + "." + minor + "." + patch;
}
}