Added tools for converting dpid to uri and vice versa.
Modified device and link provider to use the new tools.
diff --git a/utils/misc/src/main/java/org/onlab/util/Tools.java b/utils/misc/src/main/java/org/onlab/util/Tools.java
index e1e9ed7..5e63b84 100644
--- a/utils/misc/src/main/java/org/onlab/util/Tools.java
+++ b/utils/misc/src/main/java/org/onlab/util/Tools.java
@@ -1,5 +1,7 @@
package org.onlab.util;
+import com.google.common.base.Strings;
+import com.google.common.primitives.UnsignedLongs;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import java.util.concurrent.ThreadFactory;
@@ -20,4 +22,34 @@
return new ThreadFactoryBuilder().setNameFormat(pattern).build();
}
+ /**
+ * Converts a string from hex to long.
+ *
+ * @param string hex number in string form; sans 0x
+ * @return long value
+ */
+ public static long fromHex(String string) {
+ return UnsignedLongs.parseUnsignedLong(string, 16);
+ }
+
+ /**
+ * Converts a long value to hex string; 16 wide and sans 0x.
+ *
+ * @param value long value
+ * @return hex string
+ */
+ public static String toHex(long value) {
+ return Strings.padStart(UnsignedLongs.toString(value, 16), 16, '0');
+ }
+
+ /**
+ * Converts a long value to hex string; 16 wide and sans 0x.
+ *
+ * @param value long value
+ * @param width string width; zero padded
+ * @return hex string
+ */
+ public static String toHex(long value, int width) {
+ return Strings.padStart(UnsignedLongs.toString(value, 16), width, '0');
+ }
}