Class Version

java.lang.Object
net.sourceforge.jnlp.Version
Direct Known Subclasses:
Version.JreVersion

public class Version extends Object

A JNLP Version string in the form "1.2-3_abc" followed by an optional + (includes all later versions) or * (matches any suffixes on versions). More than one version can be included in a string by separating them with spaces.

Version strings are divided by "._-" charecters into parts. These parts are compared numerically if they can be parsed as integers or lexographically as strings otherwise. If the number of parts is different between two version strings then the smaller one is padded with zero or the empty string. Note that the padding in this version means that 1.2+ matches 1.4.0-beta1, but may not in future versions.

  • Constructor Details

    • Version

      public Version(String versions)
      Create a Version object based on a version string (ie, "1.2.3+ 4.56*").
      Parameters:
      versions - string describing version
  • Method Details

    • isVersionId

      public boolean isVersionId()
      Returns:
      true if the version represents a version-id (a single version number such as 1.2) and false otherwise.
    • matches

      public boolean matches(String version)
      Parameters:
      version - a version string
      Returns:
      true if all of this version's version-ids match one or more of the specifed version's version-id.
    • matches

      public boolean matches(Version version)
      Parameters:
      version - a Version object
      Returns:
      true if all of this version's version-ids match one or more of the specifed version's version-id.
    • matchesAny

      public boolean matchesAny(String version)
      Parameters:
      version - a version string
      Returns:
      true if any of this version's version-ids match one or more of the specifed version's version-id.
    • matchesAny

      public boolean matchesAny(Version version)
      Parameters:
      version - a Version object
      Returns:
      true if any of this version's version-ids match one or more of the specifed version's version-id.
    • equal

      protected boolean equal(List<String> parts1, List<String> parts2)
      Parameters:
      parts1 - normalized version parts
      parts2 - normalized version parts
      Returns:
      whether the parts of one version are equal to the parts of another version.
    • greater

      protected boolean greater(List<String> parts1, List<String> parts2)
      Parameters:
      parts1 - normalized version parts
      parts2 - normalized version parts
      Returns:
      whether the parts of one version are greater than the parts of another version.
    • compare

      protected int compare(String part1, String part2)
      Compares two parts of a version string, by value if both can be interpreted as integers or lexically otherwise. If a part is the result of normalization then it can be the Integer zero or an empty string. Returns a value equivalent to part1.compareTo(part2);
      Parameters:
      part1 - a part of a version string
      part2 - a part of a version string
      Returns:
      comparison of the two parts
    • normalize

      protected void normalize(List<List<String>> versions, int maxLength)
      Normalize version strings so that they contain the same number of constituent parts.
      Parameters:
      versions - list array of parts of a version string
      maxLength - truncate lists to this maximum length
    • getVersionStrings

      protected List<String> getVersionStrings()
      Returns:
      the individual version strings that make up a Version.
    • getParts

      protected List<String> getParts(String oneVersion)
      Parameters:
      oneVersion - a single version id string (not compound)
      Returns:
      the constituent parts of a version string.
    • toString

      public String toString()
      Overrides:
      toString in class Object