| 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) | 
 | 		{ | 
 | 			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; | 
 | 		} | 
 | 	} | 
 | } |