checkpoint
[sbp.git] / src / edu / berkeley / sbp / util / Reflection.java
index 247652a..da16336 100644 (file)
@@ -53,19 +53,7 @@ public final class Reflection {
 
     public static String show(Object o) {
         if (o==null) return "null";
-        if (o instanceof Show) {
-            StringBuffer ret = new StringBuffer();
-            for(Field f : o.getClass().getFields()) {
-                ret.append("\n" + f.getName() + " = ");
-                try {
-                    ret.append(show(f.get(o)));
-                } catch (Exception e) {
-                    ret.append("**"+e+"**");
-                    throw new RuntimeException(e);
-                }
-            }
-            return o.getClass().getName() + " {" + StringUtil.indent(ret.toString(), 4) + "\n}";
-        }
+        if (o instanceof Show) return ((Show)o).toString();
         if (! (o instanceof Object[])) return o.toString() + " : " + o.getClass().getName();
         Object[] arr = (Object[])o;
         StringBuffer ret = new StringBuffer();
@@ -76,6 +64,20 @@ public final class Reflection {
         return ret.toString();
     }
 
+    public static String show(Show o) {
+        StringBuffer ret = new StringBuffer();
+        for(Field f : o.getClass().getFields()) {
+            ret.append("\n" + f.getName() + " = ");
+            try {
+                ret.append(show(f.get(o)));
+            } catch (Exception e) {
+                ret.append("**"+e+"**");
+                throw new RuntimeException(e);
+            }
+        }
+        return o.getClass().getName() + " {" + StringUtil.indent(ret.toString(), 4) + "\n}";
+    }
+
     public static Object lub(Object argo) {
         if (argo instanceof Object[]) return lub((Object[])argo);
         return argo;
@@ -197,5 +199,6 @@ public final class Reflection {
         return null;
     }
 
-    public static interface Show { }
+    public static interface Show {
+    }
 }