Class Version

java.lang.Object
com.pnfsoftware.jeb.core.Version
All Implemented Interfaces:
Comparable<Version>

@Ser public class Version extends Object implements Comparable<Version>
Version number object. The syntax is as follows: major.minor.buildid.timestamp.channel or major.minor-channelString.buildid.timestamp.

Details:
- A valid version string must contain the fields major, minor and buildid
- Timestamp format: YYYYMMDDhhmm
- Allowed channels: RELEASE(0,""), BETA(1,"beta"), ALPHA(2,"alpha")

Examples of valid version strings:

 1.0.0
 1.0.2.201801021400
 1.0.2.201801021400.0
 1.0.2.201801021400.1
 1.0.2.201801021400.2
 1.2.123
 1.2-beta.123
 1.2-alpha.123
 1.2-beta.123.201807140000
 
Version objects can be persisted.
  • Field Details

  • Constructor Details

    • Version

      public Version(Version v)
      Copy constructor.
      Parameters:
      v - a version object
    • Version

      public Version(int major, int minor)
      Create a new version object "major.minor.0.0".
      Parameters:
      major - zero or positive number
      minor - zero or positive number
    • Version

      public Version(int major, int minor, int buildid)
      Create a new version object "major.minor.buildid.0".
      Parameters:
      major - zero or positive number
      minor - zero or positive number
      buildid - zero or positive number
    • Version

      public Version(int major, int minor, int buildid, long timestamp)
      Create a new version object "major.minor.buildid.timestamp".
      Parameters:
      major - zero or positive number
      minor - zero or positive number
      buildid - zero or positive number
      timestamp - zero or positive number
    • Version

      public Version(int major, int minor, int buildid, long timestamp, int channel)
      Create a new version object "major.minor.buildid.timestamp".
      Parameters:
      major - zero or positive number
      minor - zero or positive number
      buildid - zero or positive number
      timestamp - zero or positive number
      channel - optional; 0=release, 1=beta, 2=alpha
  • Method Details

    • getChannelName

      public static String getChannelName(int channel)
    • getChannelInfo

      public static String getChannelInfo(int channel)
    • getChannelNames

      public static String[] getChannelNames()
    • create

      public static Version create(int major, int minor)
      Static builder, equivalent of Version(int, int).
      Parameters:
      major -
      minor -
      Returns:
    • create

      public static Version create(int major, int minor, int buildid)
      Static builder, equivalent of Version(int, int, int).
      Parameters:
      major -
      minor -
      buildid -
      Returns:
    • create

      public static Version create(int major, int minor, int buildid, long timestamp)
      Static builder, equivalent of Version(int, int, int, long).
      Parameters:
      major -
      minor -
      buildid -
      timestamp -
      Returns:
    • create

      public static Version create(int major, int minor, int buildid, long timestamp, int channel)
      Static builder, equivalent of Version(int, int, int, long, int).
      Parameters:
      major -
      minor -
      buildid -
      timestamp -
      channel -
      Returns:
    • getMajor

      public int getMajor()
      Get the major number.
      Returns:
    • getMinor

      public int getMinor()
      Get the minor number.
      Returns:
    • getBuildid

      public int getBuildid()
      Get the build id number.
      Returns:
    • getTimestamp

      public long getTimestamp()
      Get the timestamp.
      Returns:
    • getChannel

      public int getChannel()
      Get the channel.
      Returns:
    • getChannelString

      public String getChannelString()
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • compareTo

      public int compareTo(Version o)
      Specified by:
      compareTo in interface Comparable<Version>
    • compareToIgnoreTimestamp

      public int compareToIgnoreTimestamp(Version o)
    • compareToIgnoreChannel

      public int compareToIgnoreChannel(Version o)
    • compareToIgnoreTimestampAndChannel

      public int compareToIgnoreTimestampAndChannel(Version o)
    • like

      public boolean like(int major)
      Determine if the version is like "major.?.?.?"
      Parameters:
      major -
      Returns:
    • like

      public boolean like(int major, int minor)
      Determine if the version is like "major.minor.?.?"
      Parameters:
      major -
      minor -
      Returns:
    • like

      public boolean like(int major, int minor, int buildid)
      Determine if the version is like "major.minor.buildid.?"
      Parameters:
      major -
      minor -
      buildid -
      Returns:
    • format

      public String format(boolean useChannelString)
      Parameters:
      useChannelString - true to format the channel (if present) as a string appended to the Minor version number; else, the channel value, if non 0, will be appended to the version Timestamp
      Returns:
    • formatCompact

      public String formatCompact()
    • toString

      public String toString()
      Same as format(true).
      Overrides:
      toString in class Object
    • parseFromString

      public static Version parseFromString(String s)
      Parse a version string into a Version object.
      Parameters:
      s - a string
      Returns:
      a version object, null on error
    • parseFromFile

      public static Version parseFromFile(File f)
      Read a file which should contain a single string containing a version number.
      Parameters:
      f - a file
      Returns:
      the version object, null on error
    • toInt

      public int toInt()
      Generate a 4-byte integer representing the three most relevant components of this version object. The resulting int is as such: {00AABBCC} where AA=getMajor(), BB=getMinor(), CC=getBuildid(). If any of AA, BB, CC exceeds 255, it is truncated to 255.
      Returns:
      a version-int
    • fromInt

      public static Version fromInt(int val)
      Create a version object from an integer generated by toInt().
      Parameters:
      val - a version-int, as generated by toInt()
      Returns:
      a version Object
    • setMajor

      public void setMajor(int major)
    • setMinor

      public void setMinor(int minor)
    • setBuildid

      public void setBuildid(int buildid)
    • setTimestamp

      public void setTimestamp(long timestamp)
    • setChannel

      public void setChannel(int channel)