automatically traverse collections, but instead simply call toString on them.
The versions that take box arguments (where the developer is clearly expressing
a desire for custom formatted collections) still do the traversal. Moved the
warning that Enumeration and Iterator are consumed into said methods.
Switched LogBuilder to use StringUtil.toString, since it now subsumes the
behavior of ArrayUtil.toString without the undesirable collection munging that
motivated its original creation.
Nixed ArrayUtil.toString/safeToString because they haven't been in the wild
long enough to be likely to have been discovered and used by third parties.
- ObserverList shouldn't extend ArrayList; bad mojo.
- Policies should be an enum.
- Use CopyOnWriteArrayList instead of our hand-rolled snapshotting.
MDB addends:
- ObserverList should be an interface (turned out to be easier to make it an
abstract class).
- WeakObserverList should be simpler, and turns out to be so, once we simplify
ObserverList public interface and remove ArraListness.
This should all be source compatible with previous usage (modulo deprecation of
the ObserverList notification constants, which most code is probably not using,
since the nice factory methods are much more concise).
cancellation. It's tempting to store the string representation as
well when the reference is cleared, but that could be anything, so
avoid the expense.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2992 6335cc39-0255-0410-8fd6-9bcaacd3b74c
There are actually 5 different implementations of quicksort in here when
one will do (the array versions could go away and call the list version,
wrapping in Arrays.asList()). But I won't touch those right now. I am
super tempted to reduce things down to one List version and one array
version.
Also it's weird that there are customized Comparators that are null-safe.
I believe I was the one who added them in the past, but I've since learned.
It's a strange undocumented "convenience" when it's easy enough for someone
to provide a null-safe comparator for comparables. (In guava you can call
Ordering.natural().nullsLast()).
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2988 6335cc39-0255-0410-8fd6-9bcaacd3b74c
a while back. Let's have the Ant-based build do the same. We can also get rid
of samskivert-gwt, since it hasn't been necessary for some time.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2987 6335cc39-0255-0410-8fd6-9bcaacd3b74c