public static SemanticVersion valueOf()

in nuget-common/src/jetbrains/buildServer/nuget/common/version/SemanticVersion.java [42:67]


  public static SemanticVersion valueOf(@NotNull String versionString) {
    if (StringUtil.isEmpty(versionString)) return null;

    final Matcher match = VERSION_STRING_MATCHING_PATTERN.matcher(versionString.trim());
    if (!match.find()) return null;

    int major = Integer.valueOf(match.group(1));
    final String minorString = match.group(2);
    int minor = (minorString != null) ? Integer.valueOf(minorString) : 0;
    final String patchString = match.group(3);
    int patch = (patchString != null) ? Integer.valueOf(patchString) : 0;
    final String buildString = match.group(4);
    int build = (buildString != null) ? Integer.valueOf(buildString) : 0;

    final Version versionValue = new Version(major, minor, patch, build);

    String release = match.group(5);
    if (release != null && release.startsWith("-"))
      release = release.substring(1);

    String metadata = match.group(6);
    if (metadata != null && metadata.startsWith("+"))
      metadata = metadata.substring(1);

    return new SemanticVersion(versionValue, release, metadata, versionString.replace(" ", ""));
  }