aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/apps/pcep-api/src/main/java/org/onosproject/pcep/tools/PcepTools.java
diff options
context:
space:
mode:
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.java119
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);
+
+ }
+}