X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Futil%2FReflection.java;h=fd43a454fce23b41c5ade3192337aa65a0537ead;hp=de614d0628978e9e791c765f9659e1e7cedda838;hb=74e53cbf7227f5958ff7495abe31cb0462d62c4e;hpb=0ab024f487647f99eb000345c29c2f8e9b52a200 diff --git a/src/edu/berkeley/sbp/util/Reflection.java b/src/edu/berkeley/sbp/util/Reflection.java index de614d0..fd43a45 100644 --- a/src/edu/berkeley/sbp/util/Reflection.java +++ b/src/edu/berkeley/sbp/util/Reflection.java @@ -4,8 +4,8 @@ import java.lang.reflect.*; /** Random reflection-related utilities */ public final class Reflection { - - private static Object rebuild(Object o, Class c) { + + public static Object rebuild(Object o, Class c) { //System.out.println("rebuild " + o + " (a " + (o==null?null:o.getClass().getName()) + ") " + c); if (o==null || c.isAssignableFrom(o.getClass())) return o; if ((c == Character.class || c == Character.TYPE) && o instanceof String && ((String)o).length()==1) return new Character(((String)o).charAt(0)); @@ -40,6 +40,7 @@ public final class Reflection { Object[] ret = (Object[])Array.newInstance(c.getComponentType(), 1); ret[0] = o; return ret; + } else if (c==int.class && o instanceof Number) { return o; } else { throw new Error("unable to cast " + o + " from " + o.getClass().getName() + " to " + c.getName()); } @@ -50,6 +51,31 @@ public final class Reflection { return (Object[])Array.newInstance(c, i); } + public static String indent(String s, int indent) { + if (s.indexOf('\n')==-1) return s; + StringBuffer ret = new StringBuffer(); + for(int i=0; i