summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortkellner <tkellner@174cde9d-5d70-4d2a-aa98-46368bc2aaf7>2014-02-03 16:07:05 +0000
committertkellner <tkellner@174cde9d-5d70-4d2a-aa98-46368bc2aaf7>2014-02-03 16:07:05 +0000
commitde48366a43634801892aa08244d75cdf82bbcdeb (patch)
tree5c405a5ad54c49af6132d6e0f9453467870d8c93
parent367b3c257c57a2665116da5a5f12c7dfa9d23067 (diff)
downloadpdf-over-de48366a43634801892aa08244d75cdf82bbcdeb.tar.gz
pdf-over-de48366a43634801892aa08244d75cdf82bbcdeb.tar.bz2
pdf-over-de48366a43634801892aa08244d75cdf82bbcdeb.zip
Add VersionComparator necessary for update checking
git-svn-id: https://joinup.ec.europa.eu/svn/pdf-over/trunk@508 174cde9d-5d70-4d2a-aa98-46368bc2aaf7
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/utils/VersionComparator.java101
1 files changed, 101 insertions, 0 deletions
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/utils/VersionComparator.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/utils/VersionComparator.java
new file mode 100644
index 00000000..1437a4a3
--- /dev/null
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/utils/VersionComparator.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2012 by A-SIT, Secure Information Technology Center Austria
+ *
+ * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
+ * the European Commission - subsequent versions of the EUPL (the "Licence");
+ * You may not use this work except in compliance with the Licence.
+ * You may obtain a copy of the Licence at:
+ * http://joinup.ec.europa.eu/software/page/eupl
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the Licence is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the Licence for the specific language governing permissions and
+ * limitations under the Licence.
+ */
+package at.asit.pdfover.gui.utils;
+
+// Imports
+import java.util.Comparator;
+
+/**
+ *
+ */
+public class VersionComparator implements Comparator<String> {
+ /* (non-Javadoc)
+ * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
+ */
+ @Override
+ public int compare(String v1, String v2) {
+ String[] v1Parts = v1.split("\\.|-"); //$NON-NLS-1$
+ String[] v2Parts = v2.split("\\.|-"); //$NON-NLS-1$
+
+ int length = Math.max(v1Parts.length, v2Parts.length);
+ for (int i = 0; i < length; ++i) {
+ int v1Part = 0;
+ try {
+ if (i < v1Parts.length)
+ v1Part = Integer.parseInt(v1Parts[i]);
+ } catch (NumberFormatException e) {
+ if (v1Parts[i].equals("SNAPSHOT")) //$NON-NLS-1$
+ v1Part = Integer.MAX_VALUE;
+ }
+
+ int v2Part = 0;
+ try {
+ if (i < v2Parts.length)
+ v2Part = Integer.parseInt(v2Parts[i]);
+ } catch (NumberFormatException e) {
+ if (v2Parts[i].equals("SNAPSHOT")) //$NON-NLS-1$
+ v2Part = Integer.MAX_VALUE;
+ }
+
+ if (v1Part < v2Part)
+ return -1;
+ if (v1Part > v2Part)
+ return 1;
+ }
+ return 0;
+ }
+
+ /**
+ * Compare two version strings (static version)
+ * @param v1 version 1
+ * @param v2 version 2
+ * @return -1 if v1 < v2, 0 if v1 = v2, 1 if v1 > v2
+ */
+ public static int compare_s(String v1, String v2) {
+ VersionComparator vc = new VersionComparator();
+ return vc.compare(v1, v2);
+ }
+
+ /**
+ * Check two version strings for equality
+ * @param v1 version 1
+ * @param v2 version 2
+ * @return v1 == v2
+ */
+ public static boolean equals(String v1, String v2) {
+ return compare_s(v1, v2) == 0;
+ }
+
+ /**
+ * Check two version strings for order
+ * @param v1 version 1
+ * @param v2 version 2
+ * @return v1 < v2
+ */
+ public static boolean before(String v1, String v2) {
+ return compare_s(v1, v2) < 0;
+ }
+
+ /**
+ * Check two version strings for order
+ * @param v1 version 1
+ * @param v2 version 2
+ * @return v1 > v2
+ */
+ public static boolean after(String v1, String v2) {
+ return compare_s(v1, v2) > 0;
+ }
+}