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
This commit is contained in:
ray.j.greenwell
2010-12-15 01:17:31 +00:00
parent ecdd534630
commit 059d557ec9
3 changed files with 41 additions and 39 deletions
@@ -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();
}
@@ -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("<toString() failure: ").append(t).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;
}
@@ -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("<toString() failure: ").append(t).append(">");
}