public Version parse()

in initializr-generator/src/main/java/io/spring/initializr/util/VersionParser.java [71:106]


	public Version parse(String text) {
		Assert.notNull(text, "Text must not be null");
		Matcher matcher = VERSION_REGEX.matcher(text.trim());
		if (!matcher.matches()) {
			throw new InvalidVersionException(
					"Could not determine version based on '" + text + "': version format "
							+ "is Minor.Major.Patch.Qualifier " + "(e.g. 1.0.5.RELEASE)");
		}
		Integer major = Integer.valueOf(matcher.group(1));
		String minor = matcher.group(2);
		String patch = matcher.group(3);
		Qualifier qualifier = null;
		String qualifierId = matcher.group(4);
		if (StringUtils.hasText(qualifierId)) {
			qualifier = new Version.Qualifier(qualifierId);
			String o = matcher.group(5);
			if (o != null) {
				qualifier.setVersion(Integer.valueOf(o));
			}
		}
		if ("x".equals(minor) || "x".equals(patch)) {
			Integer minorInt = ("x".equals(minor) ? null : Integer.parseInt(minor));
			Version latest = findLatestVersion(major, minorInt, qualifier);
			if (latest == null) {
				return new Version(major,
						("x".equals(minor) ? 999 : Integer.parseInt(minor)),
						("x".equals(patch) ? 999 : Integer.parseInt(patch)), qualifier);
			}
			return new Version(major, latest.getMinor(), latest.getPatch(),
					latest.getQualifier());
		}
		else {
			return new Version(major, Integer.parseInt(minor), Integer.parseInt(patch),
					qualifier);
		}
	}