package com.kokakiwi.mclauncher.utils;
public class Version implements Comparable<Version>
{
private final long[] nums;
public Version(long... is)
{
nums = is;
}
public long[] getVersionNumbers()
{
return nums;
}
public static Version parseString(String version)
{
final String[] splitted = version.split("\\.");
final long[] nums = new long[splitted.length];
for (int i = 0; i < splitted.length; i++)
{
nums[i] = Long.parseLong(splitted[i]);
}
return new Version(nums);
}
public String toString()
{
final StringBuffer sb = new StringBuffer();
for (int i = 0; i < nums.length; i++)
{
sb.append(String.valueOf(nums[i]));
if (i < nums.length - 1)
{
sb.append('.');
}
}
return sb.toString();
}
public int compareTo(Version arg)
{
final long minNums = Math.min(nums.length,
arg.getVersionNumbers().length);
int diff = 0;
for (int i = 0; i < minNums; i++)
{
if (nums[i] > arg.getVersionNumbers()[i])
{
diff++;
break;
}
else if (nums[i] < arg.getVersionNumbers()[i])
{
diff--;
break;
}
else
{
continue;
}
}
if (diff == 0)
{
if (nums.length > arg.getVersionNumbers().length)
{
diff++;
}
else if (nums.length < arg.getVersionNumbers().length)
{
diff--;
}
}
return diff;
}
}