All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nl.praegus.fitnesse.symbols.MavenProjectVersions.VersionNumber Maven / Gradle / Ivy

There is a newer version: 2.0.24
Show newest version
package nl.praegus.fitnesse.symbols.MavenProjectVersions;

public class VersionNumber{
    private final int[] versionNumberArray;

    public VersionNumber(String version) {
        if (version != null) {
            String[] split = version.split("[-.]");
            versionNumberArray = new int[split.length];
            for (int i = 0; i < split.length; i++) {
                String newInt = split[i].replaceAll("[^\\d.]", "");
                if (newInt.length() > 0) {
                    versionNumberArray[i] = Integer.parseInt(newInt);
                } else {
                    versionNumberArray[i] = 0;
                }
            }
        }
        else {
            versionNumberArray = null;
        }
    }

    public String compareTo(VersionNumber latestVersion) {
        if (versionNumberArray != null) {
            // Calculate max length of version number
            int maxLength = Math.max(versionNumberArray.length, latestVersion.versionNumberArray.length);
            for (int i = 0; i < maxLength; i++) {
                int left = i < versionNumberArray.length ? versionNumberArray[i] : 0;
                int right = i < latestVersion.versionNumberArray.length ? latestVersion.versionNumberArray[i] : 0;
                // Compare current version & latest version
                if (left != right) {
                    return left < right ? VersionStatus.OUTDATED.toString() : VersionStatus.AHEAD.toString();
                }
            }

            return VersionStatus.UP_TO_DATE.toString();
        }
        else {
            return "Nothing to compare";
        }

    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy