[ 
https://issues.apache.org/jira/browse/OPENNLP-99?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12987989#action_12987989
 ] 

Jörn Kottmann commented on OPENNLP-99:
--------------------------------------

Let us continue the discussion on the dev list,
here is my answer:
http://mail-archives.apache.org/mod_mbox/incubator-opennlp-dev/201101.mbox/%[email protected]%3E

> EventStream should extend Iterator<Event>
> -----------------------------------------
>
>                 Key: OPENNLP-99
>                 URL: https://issues.apache.org/jira/browse/OPENNLP-99
>             Project: OpenNLP
>          Issue Type: New Feature
>          Components: Maxent
>    Affects Versions: maxent-3.0.0-sourceforge
>            Reporter: Steven Bethard
>
> [As requested, brought over from Sourceforge.]
> Conceptually, EventStream is just an Iterator<Event>. You would get better 
> interoperability with other Java libraries if EventStream were declared as 
> such. If you didn't care about backwards compatibility, I'd say just get rid 
> of EventStream entirely and use Iterator<Event> everywhere instead.
> If you care about backwards compatibility, you could at least declare 
> AbstractEventStream as implementing Iterator<Event> - it declares all of 
> hasNext(), next() and remove(). I believe that shouldn't break anything, and 
> should make all the current EventStream implementations into Iterator<Event>s.
> Why do I want this? Because, when using OpenNLP maxent from Scala, if a 
> RealValueFileEventStream were an Iterator<Event>, I could write:
>   for (event <- stream) {
>     ...
>   }
> But since it's not, I instead have to wrap it in an Iterator:
>   val events = new Iterator[Event] {
>     def hasNext = stream.hasNext
>     def next = stream.next
>   }
>   for (event <- events) {
>     ...
>   }
> Or write the while loop version:
>   while (stream.hasNext) {
>     val event = stream.next
>     ...
>   }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to