Browse Source

比较版本号

master
juhaoyu 8 years ago
parent
commit
f18b20cd96
  1. 60
      designer_base/src/com/fr/design/extra/PluginHelper.java

60
designer_base/src/com/fr/design/extra/PluginHelper.java

@ -46,7 +46,6 @@ public class PluginHelper {
public static final String TEMP_FILE = "temp.zip"; public static final String TEMP_FILE = "temp.zip";
public static final String CONNECTION_404 = "404"; public static final String CONNECTION_404 = "404";
private static final String LOW_VERSION = "0";
/** /**
* 下载插件 * 下载插件
@ -343,67 +342,10 @@ public class PluginHelper {
*/ */
public static boolean isNewThan(Plugin plugin, Plugin oldPlugin) { public static boolean isNewThan(Plugin plugin, Plugin oldPlugin) {
return compareVersion(plugin.getVersion(), oldPlugin.getVersion()) >= 0; return plugin.versionCompareTo(oldPlugin) >= 0;
} }
private static int compareVersion(String version1, String version2) {
if (StringUtils.isBlank(version1)) {
version1 = LOW_VERSION;
}
if (StringUtils.isBlank(version2)) {
version2 = LOW_VERSION;
}
//1.1.1类型
String[] v1 = parseVersion(version1);
String[] v2 = parseVersion(version2);
return compareVersion(v1, v2);
}
private static int compareVersion(String[] v1, String[] v2) {
//v1,v2都是1.1.1类型的数组
int result = 0;
int tempResult;
for (int i = 0; i < v1.length; i++) {
if (i >= v2.length) {
//一直没分出大小,v2用完了,v1大
result = 1;
break;
}
tempResult = compareIntStr(v1[i], v2[i]);
if (tempResult != 0) {
//分出大小,停止后续比较
result = tempResult;
break;
}
}
//循环完了v1,如果还没比出大小
if (result == 0 && v2.length > v1.length) {
result = -1;
}
return result;
}
private static int compareIntStr(String s1, String s2) {
return Integer.parseInt(s1) - Integer.parseInt(s2);
}
private static String[] parseVersion(String versionStr) {
char c;
StringBuilder sBuilder = new StringBuilder();
for (int i = 0; i < versionStr.length(); i++) {
c = versionStr.charAt(i);
if (Character.isDigit(c)) {
sBuilder.append(c);
} else if (c == '.') {
sBuilder.append("-");
}
}
return sBuilder.toString().split("-");
}
private static String sendInstalledPluginInfo(final Plugin plugin) { private static String sendInstalledPluginInfo(final Plugin plugin) {
if (StableUtils.isDebug()) { if (StableUtils.isDebug()) {
return "debug status"; return "debug status";

Loading…
Cancel
Save