public static Throwable serialize(StringBuilder sb, Object[] msg, int maxMsgSize) { Throwable error = null; for (Object o : msg) { error = serialize(sb,o, error); if (maxMsgSize > 0 && sb.length() > maxMsgSize) { sb.setLength(maxMsgSize); sb.append("..."); break; } } return error; }
public static Throwable serialize(StringBuilder sb, Object o, Throwable error) { try { if (o == null) { sb.append("[null]"); } else if (o instanceof Throwable) { if (error == null) return (Throwable)o; // another error sb.append("[").append(o).append("]"); } else if (o.getClass().isArray()) { sb.append("{"); for (Object p : (Object[])o) { error = serialize(sb, p, error); } sb.append("}"); } else sb.append("[").append(o).append("]"); } catch (Throwable t) {} return error; }
/** * Return a string representation of the data. use this to Implement * toString() * * @param sender * @param attributes * @return Stringified attributes */ public static String toString(Object sender, Object... attributes) { StringBuilder sb = new StringBuilder(); sb.append('['); if (sender != null) sb.append(sender instanceof String ? sender : sender.getClass().getSimpleName()).append(':'); boolean first = true; for (Object a : attributes) { if (!first) sb.append(','); else first = false; MString.serialize(sb, a, null); } sb.append(']'); return sb.toString(); }
/** * Like toString but if the value is null the return is null. * @param val * @return The object as string or null */ public static String toStringOrNull(Object val) { if (val == null) return null; if (val instanceof Color) return colorToString((Color) val); if (val instanceof byte[]) return byteToString((byte[]) val); if (val instanceof String) return (String)val; StringBuilder sb = new StringBuilder(); serialize(sb, val, null); return sb.toString(); }
/** * Convert a object to string using deep stringify mechanisms. * Will never return null, instead of null the string '[null]' will be returned. * @param val * @return The object as string */ public static String toString(Object val) { if (val == null) return "[null]"; if (val instanceof Color) return colorToString((Color) val); if (val instanceof byte[]) return byteToString((byte[]) val); if (val instanceof String) return (String)val; StringBuilder sb = new StringBuilder(); serialize(sb, val, null); return sb.toString(); }
public void doEvent(String name, PNode flow, Object[] args) { if (name.equals("createActivity")) { PNode previous = (PNode) args[3]; addFlowMessage(flow, name, flow.getCanonicalName()); if (previous != null) addFlowConnect(previous.getId(), flow.getId()); } else if (name.equals("createStartNode")) { addStartCreated(flow); } else { StringBuilder sb = new StringBuilder(); for (int i = 2; i < args.length; i++) MString.serialize(sb, args[i], null); addFlowMessage( flow, name, sb.toString()); } }
Throwable error = MString.serialize(sb, msg,maxMsgSize);