Enhancements on the Generator API
---------------------------------
Key: FUNCTOR-14
URL: https://issues.apache.org/jira/browse/FUNCTOR-14
Project: Commons Functor
Issue Type: Improvement
Reporter: Bruno P. Kinoshita
Priority: Minor
Apparently, the Generator API in [functor] was created based on Python
generators. However, there is room for enhancements in the current
implementation.
The Generator interface contains methods to stop its execution. However not all
generators are necessarily 'stoppable'. Maybe we could move this behavior to a
separate interface.
The parameters passed to a generator (from, to, step) are the same that, in
Python, can be used to create a Range. Ranges are used in many examples of
Generators in Python. We could include Ranges in [functor] and utilize them in
Generators. It would be good if we could include/exclude the Range boundary
values, i.e. we could create a Range 0..2, and define 0 or 2, as being either
inclusive or exclusive.
Among the current generators, there is one for Integer's, and another one for
Long's. We could create generators for other types too (e.g.: Char, Date,
Double, Float, ...).
Another feature usually related to Generators in Python is the yield statement.
There are some API's in Java that provide a yield implementation. This is not
entirely necessary, but could be convenient to include it to [functor] too,
combined with Generators. Maybe in [functor] we could create a YieldProcedure.
This way, the Generator would yield its values to this procedure. Just food for
thought.
This issue is quite vague, so feel free to add comments, or criticize. This way
we can achieve a common consensus on a new and awesome Generator API for
[functor]. No hard feelings :-)
Cheers
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira