Jaggregate 3.0 Beta 1 review
DownloadJaggregate is a Java collections library that is modeled after the ANSI Smalltalk collection protocols. It only works with J2SE 5.
|
|
Jaggregate is a Java collections library that is modeled after the ANSI Smalltalk collection protocols.
It only works with J2SE 5.
What's New in This Release:
Changed Collection.removeAll( E... ) and Collection.retainAll( E... ) to have the parameter list ( E[] ), and added overloads with parameter list ( E, E... ). This prevents a caller from specifying zero arguments to the varargs overloads of these methods. It would look kind of funny to call removeAll() with no arguments and not have anything removed, or retainAll() and have everything removed. If you really mean to have this behavior, you can still call the ( E[] ) overload with a zero-length array.
Changed AbstractDictionary.removeAllKeys( K... ) and AbstractDictionary.retainAllKeys( K... ) to have the parameter list ( K[] ), and added overloads with parameter list ( K, K... ). This prevents a caller from specifying zero arguments to the varargs overloads of these methods. It would look kind of funny to call removeAllKeys() with no arguments and not have anything removed, or retainAllKeys() and have everything removed. If you really mean to have this behavior, you can still call the ( K[] ) overload with a zero-length array.
Unary and binary functors and predicates now are abstract classes instead of interfaces, to hold common implementations of new operations.
Predicates now have methods and(), or(), not(), and xor(), to allow logical combinations of predicates.
Eliminated unused type parameter S extends ReadOnlySequence from the declaration of PuttableStream.
Binary predicates and functors now have methods bindFirst() and bindSecond(), to allow creation of unary predicates and functors from binary ones.
Unary functors now have a compose() method, to allow the functional composition of two functors.
Common predicates on objects in general: equalTo(), isA(), sameAs().
Deprecated Objects.nullSafeToString().
Common predicates and functors on Comparables: between(), lessThan(), greaterThan(), max(), min(), and so forth.
Common predicates and functors on Strings: startsWith(), indexOf(), and so forth.
A JUnit assertion method that uses predicates. See this blog entry for the inspiration behind this capability. To support this assertion method, unary predicates can describe() themselves; binary predicates provide information to help unary predicates created from bindFirst() and bindSecond() describe() themselves also.
Javadoc cleanup here and there.
Suppressed "unchecked"-flavor compiler warnings within Jaggregat source where it was deemed safe to do so.
What's New in This Release:
Several static factory methods were added to the concrete collection classes to leverage generic type inference.
The Interval class and its supporting structures were added. Intervals are read-only arithmetic progressions of numbers.
The Arrays class was added for manipulating arrays.
Collections.toDictionary(UnaryFunction) and Collections.toIdentityDictionary(UnaryFunction) were added.
Jaggregate 3.0 Beta 1 keywords