Author: ravn
Date: Thu Dec 25 20:00:12 2008
New Revision: 1261

Modified:
   
slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/instrumentation/ToStringHelper.java

Log:
Improved documentation


Modified: 
slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/instrumentation/ToStringHelper.java
==============================================================================
--- 
slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/instrumentation/ToStringHelper.java
   (original)
+++ 
slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/instrumentation/ToStringHelper.java
   Thu Dec 25 20:00:12 2008
@@ -6,6 +6,16 @@
 public class ToStringHelper {
 
        /**
+        * Prefix to use at the start of the representation. Always used.
+        */
+       private static final String ARRAY_PREFIX = "[";
+
+       /**
+        * Suffix to use at the end of the representation. Always used.
+        */
+       private static final String ARRAY_SUFFIX = "]";
+
+       /**
         * String separating each element when rendering an array. To be 
compatible
         * with lists comma-space is used.
         */
@@ -24,6 +34,16 @@
 
        final static Map<Class, Object> unrenderableClasses = new 
WeakHashMap<Class, Object>();
 
+       /**
+        * Returns o.toString() unless it throws an exception (which causes it 
to be
+        * stored in unrenderableClasses) or already was present in
+        * unrenderableClasses. If so, the same string is returned as would have
+        * been returned by Object.toString(). Arrays get special treatment as 
they
+        * don't have usable toString methods.
+        * 
+        * @param o
+        * @return
+        */
        public static String render(Object o) {
                if (o == null) {
                        return String.valueOf(o);
@@ -44,9 +64,19 @@
                return o.getClass().getName() + "@" + 
Integer.toHexString(o.hashCode());
        }
 
+       /**
+        * renderArray returns an array similar to a List. If the array type is 
an
+        * object they are rendered with "render(object)" for each. If the array
+        * type is a primitive each element is added directly to the string 
buffer
+        * collecting the result.
+        * 
+        * @param o
+        * @param objectClass
+        * @return
+        */
        private static StringBuffer renderArray(Object o, Class objectClass) {
                Class componentType = objectClass.getComponentType();
-               StringBuffer sb = new StringBuffer("[");
+               StringBuffer sb = new StringBuffer(ARRAY_PREFIX);
 
                if (componentType.isPrimitive() == false) {
                        Object[] oa = (Object[]) o;
@@ -124,7 +154,7 @@
                                }
                        }
                }
-               sb.append("]");
+               sb.append(ARRAY_SUFFIX);
                return sb;
        }
 }
_______________________________________________
dev mailing list
dev@slf4j.org
http://www.slf4j.org/mailman/listinfo/dev

Reply via email to