package net.jsunit.version;
import net.jsunit.utility.SystemUtility;
public class VersionChecker {
private double installedVersion;
private Double latestVersion;
private VersionGrabber grabber;
public static VersionChecker forDefault() {
return new VersionChecker(SystemUtility.jsUnitVersion(), new JsUnitWebsiteVersionGrabber());
}
public VersionChecker(double currentVersion, VersionGrabber grabber) {
this.installedVersion = currentVersion;
this.grabber = grabber;
}
public boolean isUpToDate() {
return installedVersion >= getLatestVersion();
}
public double getLatestVersion() {
if (latestVersion == null) {
try {
latestVersion = grabber.grabVersion();
} catch (Exception e) {
latestVersion = 0d;
}
}
return latestVersion;
}
public void setLatestVersion(double version) {
latestVersion = version;
}
public String outOfDateString() {
StringBuffer buffer = new StringBuffer();
buffer.append("*** Your JsUnit version (");
buffer.append(installedVersion);
buffer.append(") is out of date. There is a newer version available (");
buffer.append(getLatestVersion());
buffer.append(") at http://www.jsunit.net ***");
return buffer.toString();
}
}