commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <>
Subject [Commons Wiki] Update of "Sanity Check of APIs, etc." by MattBenson
Date Sat, 21 Jan 2012 01:59:56 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Commons Wiki" for change notification.

The "Sanity Check of APIs, etc." page has been changed by MattBenson:

New page:
Address open questions:

 * there are several marker interfaces, but maybe some annotations would make more sense?

 * couldn't Function, UnaryFunction and BinaryFunction be unified with a single interface
using a vararg parameter?

 * EachElement should be able to work on any Iterable. Also I'm not sure to understand why
its constructor is public.

 * Shouldn't Generator implement Iterable?

 * why are equals, hashCode and toString defined in the Functor interface?

 * why Predicate isn't an extension of Function<Boolean> ?

 * why Procedure isn't an extension of Function<Void> ?

 * Why are constants available through both a static field AND a static method? For example
Identity.INSTANCE and Identify.instance(), or Constant.TRUE and Constant.truePredicate() ?

 * The Javadoc for Limit states "A predicate that returns true the first n times it is invoked.",
but what happens after? Is it the opposite of Offset?

 * Why aren't Limit and Offset serializable like the other classes in the core package?

 * Limit and Offset could probably use an AtomicInteger instead of a synchronized block

 * the site has no example easily accessible, the reader is invited to browse the JUnit tests.
That's not really user friendly.

 * I see IllegalArgumentExceptions thrown for null values, shouldn't this be changed to throw
NullPointerExceptions ?

 * @inheritDoc tags should be removed if no additional description is provided in the subclasses.
This tag is only useful for extending the description from the method of the super class.

 * what's the point of having equals(T) methods in addition to equals(Object) ? It clutters
the API.

 * CollectionTransformer has a todo stating : "TODO revisit this class..."

 * There are several untested classes in the composite package

 * Most of the equals/hashcode methods are not tested

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message