X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Futil%2FReflection.java;h=ab77c921cea1396b77419d72adec327eddf68426;hp=42267ceee833b3597e0372524bc75307fb48e2aa;hb=f069d11a0bc59d63b078df8a4aa488498c4e9cc2;hpb=1ee308307a30c7e610a7dcad2e2cc4253e9ae039 diff --git a/src/edu/berkeley/sbp/util/Reflection.java b/src/edu/berkeley/sbp/util/Reflection.java index 42267ce..ab77c92 100644 --- a/src/edu/berkeley/sbp/util/Reflection.java +++ b/src/edu/berkeley/sbp/util/Reflection.java @@ -1,7 +1,11 @@ +// Copyright 2006-2007 all rights reserved; see LICENSE file for BSD-style license + package edu.berkeley.sbp.util; import java.io.*; import java.lang.reflect.*; +import java.lang.annotation.*; +// FIXME: decent error reporting /** Random reflection-related utilities */ public final class Reflection { @@ -51,6 +55,33 @@ public final class Reflection { return (Object[])Array.newInstance(c, i); } + public static String show(Object o) { + if (o==null) return "null"; + if (o instanceof Show) return show((Show)o); + if (! (o instanceof Object[])) return o.toString() + " : " + o.getClass().getName(); + Object[] arr = (Object[])o; + StringBuffer ret = new StringBuffer(); + ret.append(o.getClass().getComponentType().getName()); + ret.append("["+arr.length+"]:"); + for(int i=0; i