blob: a19024d88b9be445286f614b3aeabb09e5a144c1 [file] [log] [blame] [raw]
package mekanism.common;
/**
* Version v1.0.4. Simple version handling for Mekanism.
* @author AidanBrady
*
*/
public class Version
{
/** Major number for version */
public int major;
/** Minor number for version */
public int minor;
/** Build number for version */
public int build;
/**
* Creates a version number with 3 digits.
* @param majorNum - major version
* @param minorNum - minor version
* @param buildNum - build version
*/
public Version(int majorNum, int minorNum, int buildNum)
{
major = majorNum;
minor = minorNum;
build = buildNum;
}
/**
* Resets the version number to "0.0.0."
*/
public void reset()
{
major = 0;
minor = 0;
build = 0;
}
/**
* 1: greater than
* 0: equal to
* -1: less than
* @param version
* @return
*/
public byte comparedState(Version version)
{
if(version.major > major)
{
return -1;
}
else if(version.major == major)
{
if(version.minor > minor)
{
return -1;
}
else if(version.minor == minor)
{
if(version.build > build)
{
return -1;
}
else if(version.build == build)
{
return 0;
}
else {
return 1;
}
}
else {
return 1;
}
}
else {
return 1;
}
}
/**
* Gets a version object from a string.
* @param s - string object
* @return version if applicable, otherwise null
*/
public static Version get(String s)
{
String[] split = s.replace('.', ':').split(":");
if(split.length != 3)
{
System.out.println(split.length);
return null;
}
for(String i : split)
{
for(Character c : i.toCharArray())
{
if(!Character.isDigit(c))
{
return null;
}
}
}
int[] digits = new int[3];
for(int i = 0; i < 3; i++)
{
digits[i] = Integer.parseInt(split[i]);
}
return new Version(digits[0], digits[1], digits[2]);
}
@Override
public String toString()
{
if(major == 0 && minor == 0 && build == 0)
{
return "";
}
else {
return major + "." + minor + "." + build;
}
}
}