package edu.ualberta.med.biobank.server.applicationservice;
import edu.ualberta.med.biobank.server.applicationservice.exceptions.VersionFormatInvalidException;
/**
* The following is as per http://wiki.eclipse.org/index.php/Version_Numbering
*
*/
public class SwVersion {
private int major;
private int minor;
private int service;
private String qualifier;
public SwVersion() {
this.major = 0;
this.minor = 0;
this.service = 0;
this.qualifier = ""; //$NON-NLS-1$
}
public SwVersion(String versionString) throws VersionFormatInvalidException {
String[] versionSplit = versionString.split("\\."); //$NON-NLS-1$
if (versionSplit.length < 3 || versionSplit.length > 4) {
throw new VersionFormatInvalidException();
}
try {
this.major = Integer.parseInt(versionSplit[0]);
this.minor = Integer.parseInt(versionSplit[1]);
this.service = Integer.parseInt(versionSplit[2]);
} catch (NumberFormatException e) {
throw new VersionFormatInvalidException();
}
if (versionSplit.length == 4)
this.qualifier = versionSplit[3];
}
public int getMajor() {
return major;
}
public void setMajor(int major) {
this.major = major;
}
public int getMinor() {
return minor;
}
public void setMinor(int minor) {
this.minor = minor;
}
public int getService() {
return service;
}
public void setService(int service) {
this.service = service;
}
public String getQualifier() {
return qualifier;
}
public void setQualifier(String qualifier) {
this.qualifier = qualifier;
}
@SuppressWarnings("nls")
@Override
public String toString() {
return getMajor() + "." + getMinor() + "." + getService()
+ (qualifier != null ? "." + getQualifier() : "");
}
}