diff options
author | CNlucius <lukai1@huawei.com> | 2016-09-13 11:40:12 +0800 |
---|---|---|
committer | CNlucius <lukai1@huawei.com> | 2016-09-13 11:41:53 +0800 |
commit | b731e2f1dd0972409b136aebc7b463dd72c9cfad (patch) | |
tree | 5107d7d80c19ad8076c2c97c2b5ef8d1cf3ab903 /framework/src/onos/utils/misc/src/main/java/org/onlab/util/HexString.java | |
parent | ee93993458266114c29271a481ef9ce7ce621b2a (diff) |
ONOSFW-171
O/S-SFC-ONOS scenario documentation
Change-Id: I51ae1cf736ea24ab6680f8edca1b2bf5dd598365
Signed-off-by: CNlucius <lukai1@huawei.com>
Diffstat (limited to 'framework/src/onos/utils/misc/src/main/java/org/onlab/util/HexString.java')
-rw-r--r-- | framework/src/onos/utils/misc/src/main/java/org/onlab/util/HexString.java | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/framework/src/onos/utils/misc/src/main/java/org/onlab/util/HexString.java b/framework/src/onos/utils/misc/src/main/java/org/onlab/util/HexString.java deleted file mode 100644 index 962e1119..00000000 --- a/framework/src/onos/utils/misc/src/main/java/org/onlab/util/HexString.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright 2014-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.onlab.util; - -public final class HexString { - - private HexString() { - } - - /** - * Convert a byte array to a colon-separated hex string. - * - * @param bytes byte array to be converted - * @return converted colon-separated hex string, e.g. "0f:ca:fe:de:ad:be:ef", - * or "(null)" if given byte array is null - */ - public static String toHexString(final byte[] bytes) { - return toHexString(bytes, ":"); - } - - /** - * Convert a byte array to a hex string separated by given separator. - * - * @param bytes byte array to be converted - * @param separator the string use to separate each byte - * @return converted hex string, or "(null)" if given byte array is null - */ - public static String toHexString(final byte[] bytes, String separator) { - if (bytes == null) { - return "(null)"; - } - if (separator == null) { - separator = ""; - } - int i; - StringBuilder ret = new StringBuilder(bytes.length * 3 - 1); - String tmp; - for (i = 0; i < bytes.length; i++) { - if (i > 0) { - ret.append(separator); - } - tmp = Integer.toHexString((bytes[i] & 0xff)); - if (tmp.length() == 1) { - ret.append('0'); - } - ret.append(tmp); - } - return ret.toString(); - } - - /** - * Convert a long number to colon-separated hex string. - * Prepend zero padding until given length. - * - * @param val long number to be converted - * @param padTo prepend zeros until this length - * @return converted colon-separated hex string, e.g. "0f:ca:fe:de:ad:be:ef" - */ - public static String toHexString(final long val, final int padTo) { - char[] arr = Long.toHexString(val).toCharArray(); - StringBuilder ret = new StringBuilder(padTo * 3 - 1); - // prepend the right number of leading zeros - int i = 0; - for (; i < (padTo * 2 - arr.length); i++) { - ret.append('0'); - if ((i % 2) != 0) { - ret.append(':'); - } - } - for (int j = 0; j < arr.length; j++) { - ret.append(arr[j]); - if ((((i + j) % 2) != 0) && (j < (arr.length - 1))) { - ret.append(':'); - } - } - return ret.toString(); - } - - /** - * Convert a long number to colon-separated hex string. - * Prepend zero padding until 8 bytes. - * - * @param val long number to be converted - * @return converted colon-separated hex string, e.g. "0f:ca:fe:de:ad:be:ef" - */ - public static String toHexString(final long val) { - return toHexString(val, 8); - } - - /** - * Convert a colon-separated hex string to byte array. - * - * @param values colon-separated hex string to be converted, - * e.g. "0f:ca:fe:de:ad:be:ef" - * @return converted byte array - * @throws NumberFormatException if input hex string cannot be parsed - */ - public static byte[] fromHexString(final String values) { - String[] octets = values.split(":"); - byte[] ret = new byte[octets.length]; - - for (int i = 0; i < octets.length; i++) { - if (octets[i].length() > 2) { - throw new NumberFormatException("Invalid octet length"); - } - ret[i] = Integer.valueOf(octets[i], 16).byteValue(); - } - return ret; - } - - /** - * Convert a colon-separated hex string to long. - * - * @param value colon-separated hex string to be converted, - * e.g. "00:0f:ca:fe:de:ad:be:ef" - * @return converted long number - * @throws NumberFormatException if input hex string cannot be parsed - */ - public static long toLong(String value) { - String[] octets = value.split(":"); - if (octets.length > 8) { - throw new NumberFormatException("Input string is too big to fit in long: " + value); - } - long l = 0; - for (String octet: octets) { - if (octet.length() > 2) { - throw new NumberFormatException( - "Each colon-separated byte component must consist of 1 or 2 hex digits: " + value); - } - short s = Short.parseShort(octet, 16); - l = (l << 8) + s; - } - return l; - } -} |