From 059d557ec91128e103b4aa30978319e7abede402 Mon Sep 17 00:00:00 2001 From: "ray.j.greenwell" Date: Wed, 15 Dec 2010 01:17:31 +0000 Subject: [PATCH] LogBuilder.arrayStr() -> ArrayUtil.toString(), made public. If Java were invented today, you can be damn sure the array classes would have reasonable hashCode(), equals(), and toString() implementations, instead of falling back to Object's. git-svn-id: https://samskivert.googlecode.com/svn/trunk@2969 6335cc39-0255-0410-8fd6-9bcaacd3b74c --- .../java/com/samskivert/util/ArrayUtil.java | 38 ++++++++++++++++++ .../java/com/samskivert/util/LogBuilder.java | 40 +------------------ src/main/java/com/samskivert/util/Logger.java | 2 +- 3 files changed, 41 insertions(+), 39 deletions(-) diff --git a/src/main/java/com/samskivert/util/ArrayUtil.java b/src/main/java/com/samskivert/util/ArrayUtil.java index 978b2d89..e7bdd669 100644 --- a/src/main/java/com/samskivert/util/ArrayUtil.java +++ b/src/main/java/com/samskivert/util/ArrayUtil.java @@ -22,6 +22,7 @@ package com.samskivert.util; import java.lang.reflect.Array; +import java.util.Arrays; import java.util.Collection; import java.util.Comparator; import java.util.Random; @@ -906,6 +907,43 @@ public class ArrayUtil return dest; } + /** + * Return the String representation of the specified Object, which must be an array. + * + * @throws IllegalArgumentException if array is not actually an array. + */ + public static String toString (Object array) + { + if (array instanceof Object[]) { + return Arrays.deepToString((Object[])array); // go deep, baby + + } else if (array instanceof int[]) { + return Arrays.toString((int[])array); + + } else if (array instanceof byte[]) { + return Arrays.toString((byte[])array); + + } else if (array instanceof char[]) { + return Arrays.toString((char[])array); + + } else if (array instanceof short[]) { + return Arrays.toString((short[])array); + + } else if (array instanceof long[]) { + return Arrays.toString((long[])array); + + } else if (array instanceof float[]) { + return Arrays.toString((float[])array); + + } else if (array instanceof double[]) { + return Arrays.toString((double[])array); + + } else if (array instanceof boolean[]) { + return Arrays.toString((boolean[])array); + } + throw new IllegalArgumentException("Not an array: " + array); + } + /** The default random object used when shuffling an array. */ protected static final Random _rnd = new Random(); } diff --git a/src/main/java/com/samskivert/util/LogBuilder.java b/src/main/java/com/samskivert/util/LogBuilder.java index c3d6267c..47ab0a38 100644 --- a/src/main/java/com/samskivert/util/LogBuilder.java +++ b/src/main/java/com/samskivert/util/LogBuilder.java @@ -20,8 +20,6 @@ package com.samskivert.util; -import java.util.Arrays; - /** * Formats a message and an array of alternating key value pairs like so: * @@ -66,7 +64,8 @@ public class LogBuilder _log.append(args[ii]).append('='); try { Object arg = args[ii + 1]; - _log.append(((arg == null) || !arg.getClass().isArray()) ? arg : arrayStr(arg)); + _log.append(((arg == null) || !arg.getClass().isArray()) + ? arg : ArrayUtil.toString(arg)); } catch (Throwable t) { _log.append("'); } @@ -91,41 +90,6 @@ public class LogBuilder return _log.toString(); } - /** - * Return the String representation of the specified Object, which must be an array. - */ - protected static String arrayStr (Object arg) - { - if (arg instanceof Object[]) { - return Arrays.deepToString((Object[])arg); // go deep, baby - - } else if (arg instanceof int[]) { - return Arrays.toString((int[])arg); - - } else if (arg instanceof byte[]) { - return Arrays.toString((byte[])arg); - - } else if (arg instanceof char[]) { - return Arrays.toString((char[])arg); - - } else if (arg instanceof short[]) { - return Arrays.toString((short[])arg); - - } else if (arg instanceof long[]) { - return Arrays.toString((long[])arg); - - } else if (arg instanceof float[]) { - return Arrays.toString((float[])arg); - - } else if (arg instanceof double[]) { - return Arrays.toString((double[])arg); - - } else if (arg instanceof boolean[]) { - return Arrays.toString((boolean[])arg); - } - throw new IllegalArgumentException("Not an array: " + arg); - } - protected boolean _hasArgs; protected StringBuilder _log; } diff --git a/src/main/java/com/samskivert/util/Logger.java b/src/main/java/com/samskivert/util/Logger.java index e1a53332..8656c25c 100644 --- a/src/main/java/com/samskivert/util/Logger.java +++ b/src/main/java/com/samskivert/util/Logger.java @@ -160,7 +160,7 @@ public abstract class Logger Object arg = args[ii + 1]; buf.append(((arg == null) || !arg.getClass().isArray()) ? arg - : LogBuilder.arrayStr(arg)); + : ArrayUtil.toString(arg)); } catch (Throwable t) { buf.append(""); }