Jaggregate version 3.3
Changes in release 3.3
- Extracted one-method interfaces
UnaryFunctor
,UnaryCondition
,BinaryFunctor
, andBinaryCondition
, and changed numerous method signatures to accept these rather than their*Function
and*Predicate
subclasses. This is so that you can pass BGGA closure literals to these methods. - Minor internal refactorings.
Changes in release 3.2.1
- Added class
Throwables
. - Restructured some internals.
- Maven-ized project's build.
Changes in release 3.2
- Fixed a bug with
SortedCollection
s produced by the zero-argumentCollection.toSortedCollection()
. Such collections could not be serialized, because theComparator
they use was not itselfSerializable
. This has been remedied. - Added
*From
and*With
methods toDictionary
andIdentityDictionary
, compiler warnings about generic array creation be damned.
Changes in release 3.1.1
- Fixed a bug with
NaturallySortedCollection
s. In order to serializeSortedCollection
s, theComparator
s they use should themselves beSerializable
. However, the internalComparator
whichNaturallySortedCollection
s use was notSerializable
. This has been remedied.
Changes in release 3.1
- Added class
Iterables
, which enables JaggregateCollection
-like functionality forIterable
structures. - Un-published the Javadoc for the
jaggregate.number
classes which supportInterval
. The classes are public but are not intended to be used directly; hence, we have rescinded our decision to publish the class Javadocs for that package.
Changes in release 3.0
- Added several static factory methods to the concrete collection classes, to leverage generic type inference.
- Added class
Interval
and its supporting structures. Intervals are read-only arithmetic progressions of numbers. - Added class
Arrays
for manipulating arrays. - Added
Collections.toDictionary( UnaryFunction )
andCollections.toIdentityDictionary( UnaryFunction )
. - Removed deprecated method
Objects.nullSafeToString()
.
Changes in release 2.0
- Changed
Collection.removeAll( E... )
andCollection.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 callremoveAll()
with no arguments and not have anything removed, orretainAll()
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... )
andAbstractDictionary.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 callremoveAllKeys()
with no arguments and not have anything removed, orretainAllKeys()
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()
, andxor()
, to allow logical combinations of predicates. - Eliminated unused type parameter
S extends ReadOnlySequence
from the declaration ofPuttableStream
. - Binary predicates and functors now have methods
bindFirst()
andbindSecond()
, 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
Comparable
s:between()
,lessThan()
,greaterThan()
,max()
,min()
, and so forth. - Common predicates and functors on
String
s: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 frombindFirst()
andbindSecond()
describe()
themselves also. - Javadoc cleanup here and there.
- Suppressed "unchecked"-flavor compiler warnings within Jaggregate source where it was deemed safe to do so.
Release 1.0
- First major release.
- Includes concrete classes
Bag, IdentityBag, Set, IdentitySet, OrderedCollection, SortedCollection, NaturallySortedCollection, Dictionary, IdentityDictionary, ReadStream, WriteStream, Objects, Strings, Collections, Comparing, Pair, KeyValuePair
. - Includes interfaces for unary and binary functors and predicates, the analogues of one-arg and two-arg Smalltalk blocks.
© Copyright 2004-2008 Paul R. Holser, Jr. All rights reserved.
Last modified: $Id: changes.html,v 1.35 2008/10/03 19:01:22 pholser Exp $