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:
http://wiki.apache.org/commons/Sanity%20Check%20of%20APIs%2C%20etc.?action=diff&rev1=2&rev2=3
Comment:
WIP
Address open questions:
* '''''there are several marker interfaces, but maybe some annotations would make more
sense?'''''
+ This and the next question seem to dovetail since "several" marker interfaces == Functor/NullaryFunctor/UnaryFunctor/BinaryFunctor.
See my comments on that question for why I think it is a good idea to continue strongly distinguishing
these n-ary functor "profiles." These marker interfaces were added because I thought it might
occasionally be handy to be able to broadly classify functors, n-ary functors. I can't think
of a more usable way to accomplish the same goals using annotations.
* '''''couldn't Function, UnaryFunction and BinaryFunction be unified with a single interface
using a vararg parameter?'''''
+ (Same question would apply to -Predicate and -Procedure in addition to -Function) Using
a vararg parameter would preclude the binary (and hypothetical ternary, etc.) functors from
supporting different strongly typed arguments. I think it would be a step backward. MJB
* '''''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?'''''
+ I don't feel strongly about this. The original author/s of [functor] presumably used
this as a natural place to put their javadoc comments urging that functor implementations
properly implement these methods. Feel free to POLL or VOTE on the dev list.
* '''''why Predicate isn't an extension of Function<Boolean> ?'''''
+ I personally support the original authors' decision to let each functor type have a simple
and semantically straightforward API. [functor] already has adapters to handle this transformation;
forcing Predicate to be Function<Boolean> would require either a less semantically pleasing
API, or a more complicated implementation task.
* '''''why Procedure isn't an extension of Function<Void> ?'''''
+ See answer to previous question.
* '''''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 static method is the option to choose for strong typing. I don't feel strongly about
retaining the static fields which of course predated the generics work. If you want, JFDI.
* '''''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?'''''
@@ -25, +31 @@
* '''''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.'''''
+ https://issues.apache.org/jira/browse/FUNCTOR-4
* '''''I see IllegalArgumentExceptions thrown for null values, shouldn't this be changed
to throw NullPointerExceptions ?'''''
+ Agreed. https://issues.apache.org/jira/browse/FUNCTOR-10
* '''''@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.'''''
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org
|