diff options
Diffstat (limited to 'framework/src/onos/apps/pcep-api/src/main/java/org/onosproject/pcep/tools/PcepTools.java')
-rw-r--r-- | framework/src/onos/apps/pcep-api/src/main/java/org/onosproject/pcep/tools/PcepTools.java | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/framework/src/onos/apps/pcep-api/src/main/java/org/onosproject/pcep/tools/PcepTools.java b/framework/src/onos/apps/pcep-api/src/main/java/org/onosproject/pcep/tools/PcepTools.java new file mode 100644 index 00000000..28eaebdd --- /dev/null +++ b/framework/src/onos/apps/pcep-api/src/main/java/org/onosproject/pcep/tools/PcepTools.java @@ -0,0 +1,119 @@ +/* + * 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.pcep.tools; + +import javax.xml.bind.DatatypeConverter; + +/** + * tools fo pcep app. + */ +public abstract class PcepTools { + + private PcepTools() { + + } + + /** + * Converts decimal byte array to a hex string. + * + * @param byteArray byte array + * @return a hex string + */ + public static String toHexString(byte[] byteArray) { + return DatatypeConverter.printHexBinary(byteArray); + } + + /** + * Converts a hex string to a decimal byte array. + * + * @param hexString a hex string + * @return byte array + */ + public static byte[] toByteArray(String hexString) { + return DatatypeConverter.parseHexBinary(hexString); + } + + /** + * Converts a byte array to a decimal string. + * + * @param bytes a byte array + * @return a decimal string + */ + public static String toDecimalString(byte[] bytes) { + String str = ""; + for (int i = 0; i < bytes.length; i++) { + str += String.valueOf(bytes[i]); + } + return str; + } + + /** + * convert a string to the form of ip address. + * + * @param str a string + * @return a string with ip format + */ + public static String stringToIp(String str) { + long ipInt = Long.parseLong(str, 16); + return longToIp(ipInt); + } + + /** + * convert a long to ip format. + * + * @param ipLong a decimal number. + * @return a ip format string + */ + public static String longToIp(long ipLong) { + StringBuilder sb = new StringBuilder(); + sb.append((ipLong >> 24) & 0xFF).append("."); + sb.append((ipLong >> 16) & 0xFF).append("."); + sb.append((ipLong >> 8) & 0xFF).append("."); + sb.append(ipLong & 0xFF); + return sb.toString(); + } + + /** + * convert a string with ip format to a long. + * + * @param strIp a string with ip format + * @return a long number + */ + public static long ipToLong(String strIp) { + long[] ip = new long[4]; + int position1 = strIp.indexOf("."); + int position2 = strIp.indexOf(".", position1 + 1); + int position3 = strIp.indexOf(".", position2 + 1); + ip[0] = Long.parseLong(strIp.substring(0, position1)); + ip[1] = Long.parseLong(strIp.substring(position1 + 1, position2)); + ip[2] = Long.parseLong(strIp.substring(position2 + 1, position3)); + ip[3] = Long.parseLong(strIp.substring(position3 + 1)); + return (ip[0] << 24) + (ip[1] << 16) + (ip[2] << 8) + ip[3]; + } + + /** + * get a integer value from a cut string. + * + * @param str a whole string + * @param base cut the string from this index + * @param offset the offset when execute the cut + * @return a integer value + */ + public static int tranferHexStringToInt(String str, int base, int offset) { + return Integer.parseInt(str.substring(base, offset), 16); + + } +} |