You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by cs...@apache.org on 2018/03/26 16:22:49 UTC

svn commit: r1827772 - /aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/CachingServiceReference.java

Author: csierra
Date: Mon Mar 26 16:22:49 2018
New Revision: 1827772

URL: http://svn.apache.org/viewvc?rev=1827772&view=rev
Log:
[Component-DSL] Improve toString method

Modified:
    aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/CachingServiceReference.java

Modified: aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/CachingServiceReference.java
URL: http://svn.apache.org/viewvc/aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/CachingServiceReference.java?rev=1827772&r1=1827771&r2=1827772&view=diff
==============================================================================
--- aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/CachingServiceReference.java (original)
+++ aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/osgi/functional/CachingServiceReference.java Mon Mar 26 16:22:49 2018
@@ -170,10 +170,67 @@ public class CachingServiceReference<T>
 
     @Override
     public String toString() {
-        return "CachingServiceReference{" +
-            "cachedProperties=" + _properties + ", " +
-            "serviceReference=" + _serviceReference +
-            '}';
+        return "CachingServiceReference {" +
+            System.lineSeparator() +
+            "cachedProperties=" +
+            mapToString(_properties) +
+            System.lineSeparator() +
+            "serviceReference=" +
+            _serviceReference +
+            System.lineSeparator() +
+            "}";
+    }
+
+    private String mapToString(Map<String, Object> map) {
+        StringBuilder stringBuilder = new StringBuilder();
+
+        stringBuilder.append("{");
+
+        for (Map.Entry<String, Object> entry : map.entrySet()) {
+            stringBuilder.append(entry.getKey());
+            stringBuilder.append("=");
+
+            Object value = entry.getValue();
+
+            if (value instanceof int[]) {
+                stringBuilder.append(Arrays.toString((int[]) value));
+            }
+            else if (value instanceof long[]) {
+                stringBuilder.append(Arrays.toString((long[]) value));
+            }
+            else if (value instanceof float[]) {
+                stringBuilder.append(Arrays.toString((float[]) value));
+            }
+            else if (value instanceof double[]) {
+                stringBuilder.append(Arrays.toString((double[]) value));
+            }
+            else if (value instanceof byte[]) {
+                stringBuilder.append(Arrays.toString((byte[]) value));
+            }
+            else if (value instanceof short[]) {
+                stringBuilder.append(Arrays.toString((short[]) value));
+            }
+            else if (value instanceof char[]) {
+                stringBuilder.append(Arrays.toString((char[]) value));
+            }
+            else if (value instanceof Object[]) {
+                stringBuilder.append(Arrays.deepToString((Object[]) value));
+            }
+            else {
+                stringBuilder.append(value);
+            }
+
+            stringBuilder.append(", ");
+        }
+
+        if (!map.isEmpty()) {
+            stringBuilder.delete(
+                stringBuilder.length() - 2, stringBuilder.length());
+        }
+
+        stringBuilder.append("}");
+
+        return stringBuilder.toString();
     }
 
     /**