aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/protocols/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/VersionUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/protocols/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/VersionUtil.java')
-rw-r--r--framework/src/onos/protocols/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/VersionUtil.java69
1 files changed, 69 insertions, 0 deletions
diff --git a/framework/src/onos/protocols/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/VersionUtil.java b/framework/src/onos/protocols/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/VersionUtil.java
new file mode 100644
index 00000000..d05d90ed
--- /dev/null
+++ b/framework/src/onos/protocols/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/VersionUtil.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.ovsdb.rfc.utils;
+
+/**
+ * Version utility class.
+ */
+public final class VersionUtil {
+
+ /**
+ * Constructs a VersionUtil object. Utility classes should not have a public
+ * or default constructor, otherwise IDE will compile unsuccessfully. This
+ * class should not be instantiated.
+ */
+ private VersionUtil() {
+ }
+
+ public static final String DEFAULT_VERSION_STRING = "0.0.0";
+ private static final String FORMAT = "(\\d+)\\.(\\d+)\\.(\\d+)";
+
+ /**
+ * Match version by the format.
+ * @param version the version String
+ * @throws IllegalArgumentException this is an illegal argument exception
+ */
+ public static void versionMatch(String version) {
+ if (!version.matches(FORMAT)) {
+ throw new IllegalArgumentException("<" + version
+ + "> does not match format " + FORMAT);
+ }
+ }
+
+ /**
+ * Compare fromVersion and toVersion.
+ * @param fromVersion the initial version
+ * @param toVersion the end of the version
+ * @return an int number
+ */
+ public static int versionCompare(String fromVersion, String toVersion) {
+ String[] fromArr = fromVersion.split("\\.");
+ String[] toArr = toVersion.split("\\.");
+ int fromFirst = Integer.parseInt(fromArr[0]);
+ int fromMiddle = Integer.parseInt(fromArr[1]);
+ int fromEnd = Integer.parseInt(fromArr[2]);
+ int toFirst = Integer.parseInt(toArr[0]);
+ int toMiddle = Integer.parseInt(toArr[1]);
+ int toEnd = Integer.parseInt(toArr[2]);
+ if (fromFirst - toFirst != 0) {
+ return fromFirst - toFirst;
+ } else if (fromMiddle - toMiddle != 0) {
+ return fromMiddle - toMiddle;
+ } else {
+ return fromEnd - toEnd;
+ }
+ }
+}