Fix checkstyle warnings in netconf-cli
[controller.git] / third-party / openflowj / src / main / java / org / openflow / util / HexString.java
1 package org.openflow.util;
2
3 import java.math.BigInteger;
4
5 public class HexString {
6     /**
7      * Convert a string of bytes to a ':' separated hex string
8      * @param bytes
9      * @return "0f:ca:fe:de:ad:be:ef"
10      */
11     public static String toHexString(byte[] bytes) {
12         int i;
13         String ret = "";
14         String tmp;
15         for(i=0; i< bytes.length; i++) {
16             if(i> 0)
17                 ret += ":";
18             tmp = Integer.toHexString(U8.f(bytes[i]));
19             if (tmp.length() == 1)
20                 ret += "0";
21             ret += tmp; 
22         }
23         return ret;
24     }
25     
26     public static String toHexString(long val) {
27         char arr[] = Long.toHexString(val).toCharArray();
28         String ret = "";
29         // prepend the right number of leading zeros
30         int i = 0;
31         for (; i < (16 - arr.length); i++) {
32             ret += "0";
33             if ((i % 2) == 1)
34                 ret += ":";
35         }
36         for (int j = 0; j < arr.length; j++) {
37             ret += arr[j];
38             if ((((i + j) % 2) == 1) && (j < (arr.length - 1)))
39                 ret += ":";
40         }
41         return ret;
42     }
43     
44     
45     /**
46      * Convert a string of hex values into a string of bytes
47      * @param values "0f:ca:fe:de:ad:be:ef"
48      * @return [15, 5 ,2, 5, 17] 
49      */
50     
51     public static byte[] fromHexString(String values) {
52         String[] octets = values.split(":");
53         byte[] ret = new byte[octets.length];
54         int i;
55         
56         for(i=0;i<octets.length; i++)
57             ret[i] = Integer.valueOf(octets[i], 16).byteValue();
58         return ret;
59     }
60     
61     public static long toLong(String values) {
62                 long value = new BigInteger(values.replaceAll(":", ""), 16).longValue();
63         return value;
64     }
65 }