StringBuffer cleanup
authorStephen Kitt <skitt@redhat.com>
Mon, 15 May 2017 13:15:08 +0000 (15:15 +0200)
committerRobert Varga <nite@hq.sk>
Wed, 17 May 2017 09:07:44 +0000 (09:07 +0000)
This patch cleans up StringBuffer use, mostly replacing StringBuffer
with StringBuilder or plain String concatenation for short sequences
(or constants).

* HexEncode: additionally, avoid using a separate return variable,
  drop the useless ":" handling in bytesToHexString(), and add the
  test class from l2switch.
* HardcodedModuleFactoriesResolver: rework the conflicting module
  handling.

Change-Id: Id76e91bba9ce40bd8ed5947c2d40e3a7baf0a949
Signed-off-by: Stephen Kitt <skitt@redhat.com>
src/main/java/org/opendaylight/controller/liblldp/HexEncode.java
src/test/java/org/opendaylight/controller/liblldp/HexEncodeTest.java [new file with mode: 0644]

index cef174513bde59e7329ca98ffae7b304a985002d..bb181492a78d622793f5d29b97487a3b8681bdc8 100644 (file)
@@ -30,12 +30,8 @@ public class HexEncode {
             return "null";
         }
 
-        String ret = "";
-        StringBuffer buf = new StringBuffer();
+        StringBuilder buf = new StringBuilder();
         for (int i = 0; i < bytes.length; i++) {
-            if (i > 0) {
-                ret += ":";
-            }
             short u8byte = (short) (bytes[i] & 0xff);
             String tmp = Integer.toHexString(u8byte);
             if (tmp.length() == 1) {
@@ -43,13 +39,12 @@ public class HexEncode {
             }
             buf.append(tmp);
         }
-        ret = buf.toString();
-        return ret;
+        return buf.toString();
     }
 
     public static String longToHexString(final long val) {
         char arr[] = Long.toHexString(val).toCharArray();
-        StringBuffer buf = new StringBuffer();
+        StringBuilder buf = new StringBuilder();
         // prepend the right number of leading zeros
         int i = 0;
         for (; i < (16 - arr.length); i++) {
@@ -94,8 +89,7 @@ public class HexEncode {
         if (bytes == null) {
             return "null";
         }
-        String ret = "";
-        StringBuffer buf = new StringBuffer();
+        StringBuilder buf = new StringBuilder();
         for (int i = 0; i < bytes.length; i++) {
             if (i > 0) {
                 buf.append(":");
@@ -107,7 +101,6 @@ public class HexEncode {
             }
             buf.append(tmp);
         }
-        ret = buf.toString();
-        return ret;
+        return buf.toString();
     }
 }
diff --git a/src/test/java/org/opendaylight/controller/liblldp/HexEncodeTest.java b/src/test/java/org/opendaylight/controller/liblldp/HexEncodeTest.java
new file mode 100644 (file)
index 0000000..18aa300
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.liblldp;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class HexEncodeTest {
+    @Test
+    public void testbytesToHexString() {
+        byte[] bytes1 = { (byte) 0x01, (byte) 0x02, (byte) 0x03 };
+        String str1 = HexEncode.bytesToHexString(bytes1);
+        Assert.assertTrue(str1.equals("010203"));
+
+        byte[] bytes2 = { (byte) 0x11, (byte) 0x22, (byte) 0x33 };
+        String str2 = HexEncode.bytesToHexString(bytes2);
+        Assert.assertFalse(str2.equals("010203"));
+
+    }
+
+    @Test
+    public void testLongToHexString() {
+        long value1 = 12345678L;
+        String str1 = HexEncode.longToHexString(value1);
+        Assert.assertTrue(str1.equals("00:00:00:00:00:bc:61:4e"));
+
+        long value2 = 98765432L;
+        String str2 = HexEncode.longToHexString(value2);
+        Assert.assertFalse(str2.equals("00:44:33:22:11:bc:61:4e"));
+
+    }
+
+    @Test
+    public void testBytesFromHexString() {
+        String byteStr1 = "00:11:22:33:44:55";
+        byte byteArray1[] = HexEncode.bytesFromHexString(byteStr1);
+
+        Assert.assertTrue(byteArray1[0] == (byte) 0x0);
+        Assert.assertTrue(byteArray1[1] == (byte) 0x11);
+        Assert.assertTrue(byteArray1[2] == (byte) 0x22);
+        Assert.assertTrue(byteArray1[3] == (byte) 0x33);
+        Assert.assertTrue(byteArray1[4] == (byte) 0x44);
+        Assert.assertTrue(byteArray1[5] == (byte) 0x55);
+
+        String byteStr2 = "00:11:22:33:44:55";
+        byte byteArray2[] = HexEncode.bytesFromHexString(byteStr2);
+
+        Assert.assertFalse(byteArray2[0] == (byte) 0x55);
+        Assert.assertFalse(byteArray2[1] == (byte) 0x44);
+        Assert.assertFalse(byteArray2[2] == (byte) 0x33);
+        Assert.assertFalse(byteArray2[3] == (byte) 0x22);
+        Assert.assertFalse(byteArray2[4] == (byte) 0x11);
+        Assert.assertFalse(byteArray2[5] == (byte) 0x0);
+
+    }
+}