[jira] [Commented] (COLLECTIONS-213) CollectionUtils API extension: algorithm methods accept an Iterator argument

2011-05-25 Thread Brent Worden (JIRA)

[ 
https://issues.apache.org/jira/browse/COLLECTIONS-213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13039254#comment-13039254
 ] 

Brent Worden commented on COLLECTIONS-213:
--

IteratorIterable now supports multiple use implicitly through 
ResettableIterator instances as well as by wrapping non-resettable iterators in 
ListIteratorWrapper.

 CollectionUtils API extension: algorithm methods accept an Iterator argument
 

 Key: COLLECTIONS-213
 URL: https://issues.apache.org/jira/browse/COLLECTIONS-213
 Project: Commons Collections
  Issue Type: Improvement
  Components: Core
Reporter: Dusan Chromy
Assignee: Brent Worden
 Fix For: 4.x

 Attachments: COLLECTIONS-213.patch, CollectionUtils.java, 
 TestCollectionUtils.java, collections-4.0-213.diff


 I just finished the Iterator additions to CollectionUtils, including test 
 cases and I am going to
 attach them to this issue very shortly (basically as soon as I figure out how 
 attaching in JIRA works :)
 At first I was thinking for a while whether CollectionUtils is a good place 
 to accomodate the methods with the
 new signature, until I noticed the collect method already accepts an Iterator 
 argument.
 Following methods now accept an Iterator argument (besides collect):
 cardinality
 find
 forAllDo
 countMatches
 exists
 I also noticed cardinality used to throw a NPE if the collection argument was 
 null.
 I see no reason why it should not return zero. The Iterator flavour does 
 return zero
 and I also modified the Collection version to return zero (including Javadoc
 modification) for the sake of consistence.
 I stopped to think for a while before touching the method, but the fact
 that the Javadoc does not mention may not be null made me think the NPE is 
 not thrown
 intentionally. And after all, cardinality(..) is nothing else than 
 specialized countMatches(..), 
 which returns 0 for null collection. However, feel free to reject the change 
 to the cardinality(Object,Collection)
 method if you think otherwise.
 I worked on a fresh checkout from subversion and I just updated few minutes 
 ago to make sure I have modified
 the latest version. Anyway, please double-check before commiting the changes.
 Cheers,
 Dusan
  I think that these methods would make useful additions to the API.
  
  I don't have the time to do much collections work these days, but if you 
  want to code the methods with test cases and attach them to JIRA then that 
  would be great.
  
  Stephen
  
  
  dusan.chr...@freenet.de wrote:
  
   I've been using some algorithm methods from the CollectionUtils, for 
   example
   find(Collection, Predicate)
   exists(Collection, Predicate)
   countMatches(Collection, Predicate)
   forAllDo(Collection, Closure)
  
   However, I would also like to be able to use these algorithms with an 
   Iterator:
  
   find(Iterator, Predicate)
   exists(Iterator, Predicate)
   countMatches(Iterator, Predicate)
   forAllDo(Iterator, Closure)
  
   The obvious workaround is to use IteratorUtils.toList(Iterator), however 
   this comes at the cost of constructing a list object (an ArrayList 
   presumably) which could be avoided, as the Iterator itself is sufficient 
   for the above algorithms to work.
  
   What do you think? Is there any reason not to provide the algorithms for 
   an Iterator? I personally think that the algorithms should have been 
   there for Iterators in the first place, because every collection is 
   Iterable (or has an Iterator, prior to JDK 5.0).
  
   If noone is interested or has time to implement these changes, I can also 
   contribute to the project - but at the moment I just wanted to discuss 
   the idea / check if this has been already considered or planned.
  
   Best Regards,
  
   Dusan Chromy
  
  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (COLLECTIONS-213) CollectionUtils API extension: algorithm methods accept an Iterator argument

2011-05-24 Thread Matt Benson (JIRA)

[ 
https://issues.apache.org/jira/browse/COLLECTIONS-213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13038586#comment-13038586
 ] 

Matt Benson commented on COLLECTIONS-213:
-

I would argue that the contract of Iterable suggests implicitly that multiple 
.iterator() calls will return multiple Iterator instances.  This is not 
necessarily about resetting the original instance so much as forking it.  I 
would either make this the default behavior of IteratorIterable, or forego the 
public constructor in favor of descriptive factory methods, e.g.:

{{IteratorIterable.adaptForSingleUse(Iterator)}}
{{IteratorIterable.adaptForMultipleUse(Iterator)}}

 CollectionUtils API extension: algorithm methods accept an Iterator argument
 

 Key: COLLECTIONS-213
 URL: https://issues.apache.org/jira/browse/COLLECTIONS-213
 Project: Commons Collections
  Issue Type: Improvement
  Components: Core
Reporter: Dusan Chromy
Assignee: Brent Worden
 Fix For: 4.x

 Attachments: COLLECTIONS-213.patch, CollectionUtils.java, 
 TestCollectionUtils.java, collections-4.0-213.diff


 I just finished the Iterator additions to CollectionUtils, including test 
 cases and I am going to
 attach them to this issue very shortly (basically as soon as I figure out how 
 attaching in JIRA works :)
 At first I was thinking for a while whether CollectionUtils is a good place 
 to accomodate the methods with the
 new signature, until I noticed the collect method already accepts an Iterator 
 argument.
 Following methods now accept an Iterator argument (besides collect):
 cardinality
 find
 forAllDo
 countMatches
 exists
 I also noticed cardinality used to throw a NPE if the collection argument was 
 null.
 I see no reason why it should not return zero. The Iterator flavour does 
 return zero
 and I also modified the Collection version to return zero (including Javadoc
 modification) for the sake of consistence.
 I stopped to think for a while before touching the method, but the fact
 that the Javadoc does not mention may not be null made me think the NPE is 
 not thrown
 intentionally. And after all, cardinality(..) is nothing else than 
 specialized countMatches(..), 
 which returns 0 for null collection. However, feel free to reject the change 
 to the cardinality(Object,Collection)
 method if you think otherwise.
 I worked on a fresh checkout from subversion and I just updated few minutes 
 ago to make sure I have modified
 the latest version. Anyway, please double-check before commiting the changes.
 Cheers,
 Dusan
  I think that these methods would make useful additions to the API.
  
  I don't have the time to do much collections work these days, but if you 
  want to code the methods with test cases and attach them to JIRA then that 
  would be great.
  
  Stephen
  
  
  dusan.chr...@freenet.de wrote:
  
   I've been using some algorithm methods from the CollectionUtils, for 
   example
   find(Collection, Predicate)
   exists(Collection, Predicate)
   countMatches(Collection, Predicate)
   forAllDo(Collection, Closure)
  
   However, I would also like to be able to use these algorithms with an 
   Iterator:
  
   find(Iterator, Predicate)
   exists(Iterator, Predicate)
   countMatches(Iterator, Predicate)
   forAllDo(Iterator, Closure)
  
   The obvious workaround is to use IteratorUtils.toList(Iterator), however 
   this comes at the cost of constructing a list object (an ArrayList 
   presumably) which could be avoided, as the Iterator itself is sufficient 
   for the above algorithms to work.
  
   What do you think? Is there any reason not to provide the algorithms for 
   an Iterator? I personally think that the algorithms should have been 
   there for Iterators in the first place, because every collection is 
   Iterable (or has an Iterator, prior to JDK 5.0).
  
   If noone is interested or has time to implement these changes, I can also 
   contribute to the project - but at the moment I just wanted to discuss 
   the idea / check if this has been already considered or planned.
  
   Best Regards,
  
   Dusan Chromy
  
  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (COLLECTIONS-213) CollectionUtils API extension: algorithm methods accept an Iterator argument

2011-05-24 Thread Stephen Colebourne (JIRA)

[ 
https://issues.apache.org/jira/browse/COLLECTIONS-213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13038595#comment-13038595
 ] 

Stephen Colebourne commented on COLLECTIONS-213:


Dont forget that [collections] has ResettableIterator, so there is another case 
to consider.

 CollectionUtils API extension: algorithm methods accept an Iterator argument
 

 Key: COLLECTIONS-213
 URL: https://issues.apache.org/jira/browse/COLLECTIONS-213
 Project: Commons Collections
  Issue Type: Improvement
  Components: Core
Reporter: Dusan Chromy
Assignee: Brent Worden
 Fix For: 4.x

 Attachments: COLLECTIONS-213.patch, CollectionUtils.java, 
 TestCollectionUtils.java, collections-4.0-213.diff


 I just finished the Iterator additions to CollectionUtils, including test 
 cases and I am going to
 attach them to this issue very shortly (basically as soon as I figure out how 
 attaching in JIRA works :)
 At first I was thinking for a while whether CollectionUtils is a good place 
 to accomodate the methods with the
 new signature, until I noticed the collect method already accepts an Iterator 
 argument.
 Following methods now accept an Iterator argument (besides collect):
 cardinality
 find
 forAllDo
 countMatches
 exists
 I also noticed cardinality used to throw a NPE if the collection argument was 
 null.
 I see no reason why it should not return zero. The Iterator flavour does 
 return zero
 and I also modified the Collection version to return zero (including Javadoc
 modification) for the sake of consistence.
 I stopped to think for a while before touching the method, but the fact
 that the Javadoc does not mention may not be null made me think the NPE is 
 not thrown
 intentionally. And after all, cardinality(..) is nothing else than 
 specialized countMatches(..), 
 which returns 0 for null collection. However, feel free to reject the change 
 to the cardinality(Object,Collection)
 method if you think otherwise.
 I worked on a fresh checkout from subversion and I just updated few minutes 
 ago to make sure I have modified
 the latest version. Anyway, please double-check before commiting the changes.
 Cheers,
 Dusan
  I think that these methods would make useful additions to the API.
  
  I don't have the time to do much collections work these days, but if you 
  want to code the methods with test cases and attach them to JIRA then that 
  would be great.
  
  Stephen
  
  
  dusan.chr...@freenet.de wrote:
  
   I've been using some algorithm methods from the CollectionUtils, for 
   example
   find(Collection, Predicate)
   exists(Collection, Predicate)
   countMatches(Collection, Predicate)
   forAllDo(Collection, Closure)
  
   However, I would also like to be able to use these algorithms with an 
   Iterator:
  
   find(Iterator, Predicate)
   exists(Iterator, Predicate)
   countMatches(Iterator, Predicate)
   forAllDo(Iterator, Closure)
  
   The obvious workaround is to use IteratorUtils.toList(Iterator), however 
   this comes at the cost of constructing a list object (an ArrayList 
   presumably) which could be avoided, as the Iterator itself is sufficient 
   for the above algorithms to work.
  
   What do you think? Is there any reason not to provide the algorithms for 
   an Iterator? I personally think that the algorithms should have been 
   there for Iterators in the first place, because every collection is 
   Iterable (or has an Iterator, prior to JDK 5.0).
  
   If noone is interested or has time to implement these changes, I can also 
   contribute to the project - but at the moment I just wanted to discuss 
   the idea / check if this has been already considered or planned.
  
   Best Regards,
  
   Dusan Chromy
  
  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (COLLECTIONS-213) CollectionUtils API extension: algorithm methods accept an Iterator argument

2011-05-23 Thread Brent Worden (JIRA)

[ 
https://issues.apache.org/jira/browse/COLLECTIONS-213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13038361#comment-13038361
 ] 

Brent Worden commented on COLLECTIONS-213:
--

r1126836.  Added IteratorIterable adaptor type.

 CollectionUtils API extension: algorithm methods accept an Iterator argument
 

 Key: COLLECTIONS-213
 URL: https://issues.apache.org/jira/browse/COLLECTIONS-213
 Project: Commons Collections
  Issue Type: Improvement
  Components: Core
Reporter: Dusan Chromy
Assignee: Brent Worden
 Fix For: 4.x

 Attachments: COLLECTIONS-213.patch, CollectionUtils.java, 
 TestCollectionUtils.java, collections-4.0-213.diff


 I just finished the Iterator additions to CollectionUtils, including test 
 cases and I am going to
 attach them to this issue very shortly (basically as soon as I figure out how 
 attaching in JIRA works :)
 At first I was thinking for a while whether CollectionUtils is a good place 
 to accomodate the methods with the
 new signature, until I noticed the collect method already accepts an Iterator 
 argument.
 Following methods now accept an Iterator argument (besides collect):
 cardinality
 find
 forAllDo
 countMatches
 exists
 I also noticed cardinality used to throw a NPE if the collection argument was 
 null.
 I see no reason why it should not return zero. The Iterator flavour does 
 return zero
 and I also modified the Collection version to return zero (including Javadoc
 modification) for the sake of consistence.
 I stopped to think for a while before touching the method, but the fact
 that the Javadoc does not mention may not be null made me think the NPE is 
 not thrown
 intentionally. And after all, cardinality(..) is nothing else than 
 specialized countMatches(..), 
 which returns 0 for null collection. However, feel free to reject the change 
 to the cardinality(Object,Collection)
 method if you think otherwise.
 I worked on a fresh checkout from subversion and I just updated few minutes 
 ago to make sure I have modified
 the latest version. Anyway, please double-check before commiting the changes.
 Cheers,
 Dusan
  I think that these methods would make useful additions to the API.
  
  I don't have the time to do much collections work these days, but if you 
  want to code the methods with test cases and attach them to JIRA then that 
  would be great.
  
  Stephen
  
  
  dusan.chr...@freenet.de wrote:
  
   I've been using some algorithm methods from the CollectionUtils, for 
   example
   find(Collection, Predicate)
   exists(Collection, Predicate)
   countMatches(Collection, Predicate)
   forAllDo(Collection, Closure)
  
   However, I would also like to be able to use these algorithms with an 
   Iterator:
  
   find(Iterator, Predicate)
   exists(Iterator, Predicate)
   countMatches(Iterator, Predicate)
   forAllDo(Iterator, Closure)
  
   The obvious workaround is to use IteratorUtils.toList(Iterator), however 
   this comes at the cost of constructing a list object (an ArrayList 
   presumably) which could be avoided, as the Iterator itself is sufficient 
   for the above algorithms to work.
  
   What do you think? Is there any reason not to provide the algorithms for 
   an Iterator? I personally think that the algorithms should have been 
   there for Iterators in the first place, because every collection is 
   Iterable (or has an Iterator, prior to JDK 5.0).
  
   If noone is interested or has time to implement these changes, I can also 
   contribute to the project - but at the moment I just wanted to discuss 
   the idea / check if this has been already considered or planned.
  
   Best Regards,
  
   Dusan Chromy
  
  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (COLLECTIONS-213) CollectionUtils API extension: algorithm methods accept an Iterator argument

2011-05-23 Thread Brent Worden (JIRA)

[ 
https://issues.apache.org/jira/browse/COLLECTIONS-213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13038362#comment-13038362
 ] 

Brent Worden commented on COLLECTIONS-213:
--

To address Matt Benson's concern, should the IteratorIterable class be modified 
to work with resettable iterators or should a separate iterable adaptor class 
be created?

 CollectionUtils API extension: algorithm methods accept an Iterator argument
 

 Key: COLLECTIONS-213
 URL: https://issues.apache.org/jira/browse/COLLECTIONS-213
 Project: Commons Collections
  Issue Type: Improvement
  Components: Core
Reporter: Dusan Chromy
Assignee: Brent Worden
 Fix For: 4.x

 Attachments: COLLECTIONS-213.patch, CollectionUtils.java, 
 TestCollectionUtils.java, collections-4.0-213.diff


 I just finished the Iterator additions to CollectionUtils, including test 
 cases and I am going to
 attach them to this issue very shortly (basically as soon as I figure out how 
 attaching in JIRA works :)
 At first I was thinking for a while whether CollectionUtils is a good place 
 to accomodate the methods with the
 new signature, until I noticed the collect method already accepts an Iterator 
 argument.
 Following methods now accept an Iterator argument (besides collect):
 cardinality
 find
 forAllDo
 countMatches
 exists
 I also noticed cardinality used to throw a NPE if the collection argument was 
 null.
 I see no reason why it should not return zero. The Iterator flavour does 
 return zero
 and I also modified the Collection version to return zero (including Javadoc
 modification) for the sake of consistence.
 I stopped to think for a while before touching the method, but the fact
 that the Javadoc does not mention may not be null made me think the NPE is 
 not thrown
 intentionally. And after all, cardinality(..) is nothing else than 
 specialized countMatches(..), 
 which returns 0 for null collection. However, feel free to reject the change 
 to the cardinality(Object,Collection)
 method if you think otherwise.
 I worked on a fresh checkout from subversion and I just updated few minutes 
 ago to make sure I have modified
 the latest version. Anyway, please double-check before commiting the changes.
 Cheers,
 Dusan
  I think that these methods would make useful additions to the API.
  
  I don't have the time to do much collections work these days, but if you 
  want to code the methods with test cases and attach them to JIRA then that 
  would be great.
  
  Stephen
  
  
  dusan.chr...@freenet.de wrote:
  
   I've been using some algorithm methods from the CollectionUtils, for 
   example
   find(Collection, Predicate)
   exists(Collection, Predicate)
   countMatches(Collection, Predicate)
   forAllDo(Collection, Closure)
  
   However, I would also like to be able to use these algorithms with an 
   Iterator:
  
   find(Iterator, Predicate)
   exists(Iterator, Predicate)
   countMatches(Iterator, Predicate)
   forAllDo(Iterator, Closure)
  
   The obvious workaround is to use IteratorUtils.toList(Iterator), however 
   this comes at the cost of constructing a list object (an ArrayList 
   presumably) which could be avoided, as the Iterator itself is sufficient 
   for the above algorithms to work.
  
   What do you think? Is there any reason not to provide the algorithms for 
   an Iterator? I personally think that the algorithms should have been 
   there for Iterators in the first place, because every collection is 
   Iterable (or has an Iterator, prior to JDK 5.0).
  
   If noone is interested or has time to implement these changes, I can also 
   contribute to the project - but at the moment I just wanted to discuss 
   the idea / check if this has been already considered or planned.
  
   Best Regards,
  
   Dusan Chromy
  
  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (COLLECTIONS-213) CollectionUtils API extension: algorithm methods accept an Iterator argument

2011-05-21 Thread Stephen Colebourne (JIRA)

[ 
https://issues.apache.org/jira/browse/COLLECTIONS-213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13037442#comment-13037442
 ] 

Stephen Colebourne commented on COLLECTIONS-213:


I believe am Iterable implementation that wraps an Iterator is a very good idea 
for [collections] and simplifying its API.

 CollectionUtils API extension: algorithm methods accept an Iterator argument
 

 Key: COLLECTIONS-213
 URL: https://issues.apache.org/jira/browse/COLLECTIONS-213
 Project: Commons Collections
  Issue Type: Improvement
  Components: Core
Reporter: Dusan Chromy
Assignee: Brent Worden
 Fix For: 4.x

 Attachments: COLLECTIONS-213.patch, CollectionUtils.java, 
 TestCollectionUtils.java, collections-4.0-213.diff


 I just finished the Iterator additions to CollectionUtils, including test 
 cases and I am going to
 attach them to this issue very shortly (basically as soon as I figure out how 
 attaching in JIRA works :)
 At first I was thinking for a while whether CollectionUtils is a good place 
 to accomodate the methods with the
 new signature, until I noticed the collect method already accepts an Iterator 
 argument.
 Following methods now accept an Iterator argument (besides collect):
 cardinality
 find
 forAllDo
 countMatches
 exists
 I also noticed cardinality used to throw a NPE if the collection argument was 
 null.
 I see no reason why it should not return zero. The Iterator flavour does 
 return zero
 and I also modified the Collection version to return zero (including Javadoc
 modification) for the sake of consistence.
 I stopped to think for a while before touching the method, but the fact
 that the Javadoc does not mention may not be null made me think the NPE is 
 not thrown
 intentionally. And after all, cardinality(..) is nothing else than 
 specialized countMatches(..), 
 which returns 0 for null collection. However, feel free to reject the change 
 to the cardinality(Object,Collection)
 method if you think otherwise.
 I worked on a fresh checkout from subversion and I just updated few minutes 
 ago to make sure I have modified
 the latest version. Anyway, please double-check before commiting the changes.
 Cheers,
 Dusan
  I think that these methods would make useful additions to the API.
  
  I don't have the time to do much collections work these days, but if you 
  want to code the methods with test cases and attach them to JIRA then that 
  would be great.
  
  Stephen
  
  
  dusan.chr...@freenet.de wrote:
  
   I've been using some algorithm methods from the CollectionUtils, for 
   example
   find(Collection, Predicate)
   exists(Collection, Predicate)
   countMatches(Collection, Predicate)
   forAllDo(Collection, Closure)
  
   However, I would also like to be able to use these algorithms with an 
   Iterator:
  
   find(Iterator, Predicate)
   exists(Iterator, Predicate)
   countMatches(Iterator, Predicate)
   forAllDo(Iterator, Closure)
  
   The obvious workaround is to use IteratorUtils.toList(Iterator), however 
   this comes at the cost of constructing a list object (an ArrayList 
   presumably) which could be avoided, as the Iterator itself is sufficient 
   for the above algorithms to work.
  
   What do you think? Is there any reason not to provide the algorithms for 
   an Iterator? I personally think that the algorithms should have been 
   there for Iterators in the first place, because every collection is 
   Iterable (or has an Iterator, prior to JDK 5.0).
  
   If noone is interested or has time to implement these changes, I can also 
   contribute to the project - but at the moment I just wanted to discuss 
   the idea / check if this has been already considered or planned.
  
   Best Regards,
  
   Dusan Chromy
  
  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (COLLECTIONS-213) CollectionUtils API extension: algorithm methods accept an Iterator argument

2011-05-21 Thread Matt Benson (JIRA)

[ 
https://issues.apache.org/jira/browse/COLLECTIONS-213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13037503#comment-13037503
 ] 

Matt Benson commented on COLLECTIONS-213:
-

It would seem appropriate for an animal to cache the contents of the original 
iterator to support additional calls.  There could be multiple factory methods 
to get Iterable instances with or without this behavior.

 CollectionUtils API extension: algorithm methods accept an Iterator argument
 

 Key: COLLECTIONS-213
 URL: https://issues.apache.org/jira/browse/COLLECTIONS-213
 Project: Commons Collections
  Issue Type: Improvement
  Components: Core
Reporter: Dusan Chromy
Assignee: Brent Worden
 Fix For: 4.x

 Attachments: COLLECTIONS-213.patch, CollectionUtils.java, 
 TestCollectionUtils.java, collections-4.0-213.diff


 I just finished the Iterator additions to CollectionUtils, including test 
 cases and I am going to
 attach them to this issue very shortly (basically as soon as I figure out how 
 attaching in JIRA works :)
 At first I was thinking for a while whether CollectionUtils is a good place 
 to accomodate the methods with the
 new signature, until I noticed the collect method already accepts an Iterator 
 argument.
 Following methods now accept an Iterator argument (besides collect):
 cardinality
 find
 forAllDo
 countMatches
 exists
 I also noticed cardinality used to throw a NPE if the collection argument was 
 null.
 I see no reason why it should not return zero. The Iterator flavour does 
 return zero
 and I also modified the Collection version to return zero (including Javadoc
 modification) for the sake of consistence.
 I stopped to think for a while before touching the method, but the fact
 that the Javadoc does not mention may not be null made me think the NPE is 
 not thrown
 intentionally. And after all, cardinality(..) is nothing else than 
 specialized countMatches(..), 
 which returns 0 for null collection. However, feel free to reject the change 
 to the cardinality(Object,Collection)
 method if you think otherwise.
 I worked on a fresh checkout from subversion and I just updated few minutes 
 ago to make sure I have modified
 the latest version. Anyway, please double-check before commiting the changes.
 Cheers,
 Dusan
  I think that these methods would make useful additions to the API.
  
  I don't have the time to do much collections work these days, but if you 
  want to code the methods with test cases and attach them to JIRA then that 
  would be great.
  
  Stephen
  
  
  dusan.chr...@freenet.de wrote:
  
   I've been using some algorithm methods from the CollectionUtils, for 
   example
   find(Collection, Predicate)
   exists(Collection, Predicate)
   countMatches(Collection, Predicate)
   forAllDo(Collection, Closure)
  
   However, I would also like to be able to use these algorithms with an 
   Iterator:
  
   find(Iterator, Predicate)
   exists(Iterator, Predicate)
   countMatches(Iterator, Predicate)
   forAllDo(Iterator, Closure)
  
   The obvious workaround is to use IteratorUtils.toList(Iterator), however 
   this comes at the cost of constructing a list object (an ArrayList 
   presumably) which could be avoided, as the Iterator itself is sufficient 
   for the above algorithms to work.
  
   What do you think? Is there any reason not to provide the algorithms for 
   an Iterator? I personally think that the algorithms should have been 
   there for Iterators in the first place, because every collection is 
   Iterable (or has an Iterator, prior to JDK 5.0).
  
   If noone is interested or has time to implement these changes, I can also 
   contribute to the project - but at the moment I just wanted to discuss 
   the idea / check if this has been already considered or planned.
  
   Best Regards,
  
   Dusan Chromy
  
  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (COLLECTIONS-213) CollectionUtils API extension: algorithm methods accept an Iterator argument

2011-05-20 Thread Brent Worden (JIRA)

[ 
https://issues.apache.org/jira/browse/COLLECTIONS-213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13036857#comment-13036857
 ] 

Brent Worden commented on COLLECTIONS-213:
--

+1 on the iterator based method additions.  With the rise of big data 
frameworks, having to operate on iterators directly is becoming more common.  
For instance Hadoop's reducers work with iterators and not collections or 
iterables.

 CollectionUtils API extension: algorithm methods accept an Iterator argument
 

 Key: COLLECTIONS-213
 URL: https://issues.apache.org/jira/browse/COLLECTIONS-213
 Project: Commons Collections
  Issue Type: Improvement
  Components: Core
Reporter: Dusan Chromy
 Fix For: 4.x

 Attachments: COLLECTIONS-213.patch, CollectionUtils.java, 
 TestCollectionUtils.java


 I just finished the Iterator additions to CollectionUtils, including test 
 cases and I am going to
 attach them to this issue very shortly (basically as soon as I figure out how 
 attaching in JIRA works :)
 At first I was thinking for a while whether CollectionUtils is a good place 
 to accomodate the methods with the
 new signature, until I noticed the collect method already accepts an Iterator 
 argument.
 Following methods now accept an Iterator argument (besides collect):
 cardinality
 find
 forAllDo
 countMatches
 exists
 I also noticed cardinality used to throw a NPE if the collection argument was 
 null.
 I see no reason why it should not return zero. The Iterator flavour does 
 return zero
 and I also modified the Collection version to return zero (including Javadoc
 modification) for the sake of consistence.
 I stopped to think for a while before touching the method, but the fact
 that the Javadoc does not mention may not be null made me think the NPE is 
 not thrown
 intentionally. And after all, cardinality(..) is nothing else than 
 specialized countMatches(..), 
 which returns 0 for null collection. However, feel free to reject the change 
 to the cardinality(Object,Collection)
 method if you think otherwise.
 I worked on a fresh checkout from subversion and I just updated few minutes 
 ago to make sure I have modified
 the latest version. Anyway, please double-check before commiting the changes.
 Cheers,
 Dusan
  I think that these methods would make useful additions to the API.
  
  I don't have the time to do much collections work these days, but if you 
  want to code the methods with test cases and attach them to JIRA then that 
  would be great.
  
  Stephen
  
  
  dusan.chr...@freenet.de wrote:
  
   I've been using some algorithm methods from the CollectionUtils, for 
   example
   find(Collection, Predicate)
   exists(Collection, Predicate)
   countMatches(Collection, Predicate)
   forAllDo(Collection, Closure)
  
   However, I would also like to be able to use these algorithms with an 
   Iterator:
  
   find(Iterator, Predicate)
   exists(Iterator, Predicate)
   countMatches(Iterator, Predicate)
   forAllDo(Iterator, Closure)
  
   The obvious workaround is to use IteratorUtils.toList(Iterator), however 
   this comes at the cost of constructing a list object (an ArrayList 
   presumably) which could be avoided, as the Iterator itself is sufficient 
   for the above algorithms to work.
  
   What do you think? Is there any reason not to provide the algorithms for 
   an Iterator? I personally think that the algorithms should have been 
   there for Iterators in the first place, because every collection is 
   Iterable (or has an Iterator, prior to JDK 5.0).
  
   If noone is interested or has time to implement these changes, I can also 
   contribute to the project - but at the moment I just wanted to discuss 
   the idea / check if this has been already considered or planned.
  
   Best Regards,
  
   Dusan Chromy
  
  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (COLLECTIONS-213) CollectionUtils API extension: algorithm methods accept an Iterator argument

2011-05-20 Thread Brent Worden (JIRA)

[ 
https://issues.apache.org/jira/browse/COLLECTIONS-213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13036909#comment-13036909
 ] 

Brent Worden commented on COLLECTIONS-213:
--

Would it make more sense to create an Iterable type that simply wraps an 
Iterator?  That would eliminate the need to maintain additional versions of 
these methods.


 CollectionUtils API extension: algorithm methods accept an Iterator argument
 

 Key: COLLECTIONS-213
 URL: https://issues.apache.org/jira/browse/COLLECTIONS-213
 Project: Commons Collections
  Issue Type: Improvement
  Components: Core
Reporter: Dusan Chromy
Assignee: Brent Worden
 Fix For: 4.x

 Attachments: COLLECTIONS-213.patch, CollectionUtils.java, 
 TestCollectionUtils.java, collections-4.0-213.diff


 I just finished the Iterator additions to CollectionUtils, including test 
 cases and I am going to
 attach them to this issue very shortly (basically as soon as I figure out how 
 attaching in JIRA works :)
 At first I was thinking for a while whether CollectionUtils is a good place 
 to accomodate the methods with the
 new signature, until I noticed the collect method already accepts an Iterator 
 argument.
 Following methods now accept an Iterator argument (besides collect):
 cardinality
 find
 forAllDo
 countMatches
 exists
 I also noticed cardinality used to throw a NPE if the collection argument was 
 null.
 I see no reason why it should not return zero. The Iterator flavour does 
 return zero
 and I also modified the Collection version to return zero (including Javadoc
 modification) for the sake of consistence.
 I stopped to think for a while before touching the method, but the fact
 that the Javadoc does not mention may not be null made me think the NPE is 
 not thrown
 intentionally. And after all, cardinality(..) is nothing else than 
 specialized countMatches(..), 
 which returns 0 for null collection. However, feel free to reject the change 
 to the cardinality(Object,Collection)
 method if you think otherwise.
 I worked on a fresh checkout from subversion and I just updated few minutes 
 ago to make sure I have modified
 the latest version. Anyway, please double-check before commiting the changes.
 Cheers,
 Dusan
  I think that these methods would make useful additions to the API.
  
  I don't have the time to do much collections work these days, but if you 
  want to code the methods with test cases and attach them to JIRA then that 
  would be great.
  
  Stephen
  
  
  dusan.chr...@freenet.de wrote:
  
   I've been using some algorithm methods from the CollectionUtils, for 
   example
   find(Collection, Predicate)
   exists(Collection, Predicate)
   countMatches(Collection, Predicate)
   forAllDo(Collection, Closure)
  
   However, I would also like to be able to use these algorithms with an 
   Iterator:
  
   find(Iterator, Predicate)
   exists(Iterator, Predicate)
   countMatches(Iterator, Predicate)
   forAllDo(Iterator, Closure)
  
   The obvious workaround is to use IteratorUtils.toList(Iterator), however 
   this comes at the cost of constructing a list object (an ArrayList 
   presumably) which could be avoided, as the Iterator itself is sufficient 
   for the above algorithms to work.
  
   What do you think? Is there any reason not to provide the algorithms for 
   an Iterator? I personally think that the algorithms should have been 
   there for Iterators in the first place, because every collection is 
   Iterable (or has an Iterator, prior to JDK 5.0).
  
   If noone is interested or has time to implement these changes, I can also 
   contribute to the project - but at the moment I just wanted to discuss 
   the idea / check if this has been already considered or planned.
  
   Best Regards,
  
   Dusan Chromy
  
  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] Commented: (COLLECTIONS-213) CollectionUtils API extension: algorithm methods accept an Iterator argument

2008-03-31 Thread Ryan Ovrevik (JIRA)

[ 
https://issues.apache.org/jira/browse/COLLECTIONS-213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12583809#action_12583809
 ] 

Ryan Ovrevik commented on COLLECTIONS-213:
--

Sorry for the delay in responding to the suggestion to close this
feature request.

Unless I am missing something, the functionality provided by creating
an intermediate list is not sufficient for our use cases. We use
iterators in a pipes and filters-based batch process. The iterators
are backed by fifo queues that are populated from database records.
Using the intermediate list approach would require that all items
piped through the process would first be read into (and stay in)
memory.




 CollectionUtils API extension: algorithm methods accept an Iterator argument
 

 Key: COLLECTIONS-213
 URL: https://issues.apache.org/jira/browse/COLLECTIONS-213
 Project: Commons Collections
  Issue Type: Improvement
  Components: Core
Reporter: Dusan Chromy
 Fix For: 3.3

 Attachments: CollectionUtils.java, TestCollectionUtils.java


 I just finished the Iterator additions to CollectionUtils, including test 
 cases and I am going to
 attach them to this issue very shortly (basically as soon as I figure out how 
 attaching in JIRA works :)
 At first I was thinking for a while whether CollectionUtils is a good place 
 to accomodate the methods with the
 new signature, until I noticed the collect method already accepts an Iterator 
 argument.
 Following methods now accept an Iterator argument (besides collect):
 cardinality
 find
 forAllDo
 countMatches
 exists
 I also noticed cardinality used to throw a NPE if the collection argument was 
 null.
 I see no reason why it should not return zero. The Iterator flavour does 
 return zero
 and I also modified the Collection version to return zero (including Javadoc
 modification) for the sake of consistence.
 I stopped to think for a while before touching the method, but the fact
 that the Javadoc does not mention may not be null made me think the NPE is 
 not thrown
 intentionally. And after all, cardinality(..) is nothing else than 
 specialized countMatches(..), 
 which returns 0 for null collection. However, feel free to reject the change 
 to the cardinality(Object,Collection)
 method if you think otherwise.
 I worked on a fresh checkout from subversion and I just updated few minutes 
 ago to make sure I have modified
 the latest version. Anyway, please double-check before commiting the changes.
 Cheers,
 Dusan
  I think that these methods would make useful additions to the API.
  
  I don't have the time to do much collections work these days, but if you 
  want to code the methods with test cases and attach them to JIRA then that 
  would be great.
  
  Stephen
  
  
  [EMAIL PROTECTED] wrote:
  
   I've been using some algorithm methods from the CollectionUtils, for 
   example
   find(Collection, Predicate)
   exists(Collection, Predicate)
   countMatches(Collection, Predicate)
   forAllDo(Collection, Closure)
  
   However, I would also like to be able to use these algorithms with an 
   Iterator:
  
   find(Iterator, Predicate)
   exists(Iterator, Predicate)
   countMatches(Iterator, Predicate)
   forAllDo(Iterator, Closure)
  
   The obvious workaround is to use IteratorUtils.toList(Iterator), however 
   this comes at the cost of constructing a list object (an ArrayList 
   presumably) which could be avoided, as the Iterator itself is sufficient 
   for the above algorithms to work.
  
   What do you think? Is there any reason not to provide the algorithms for 
   an Iterator? I personally think that the algorithms should have been 
   there for Iterators in the first place, because every collection is 
   Iterable (or has an Iterator, prior to JDK 5.0).
  
   If noone is interested or has time to implement these changes, I can also 
   contribute to the project - but at the moment I just wanted to discuss 
   the idea / check if this has been already considered or planned.
  
   Best Regards,
  
   Dusan Chromy
  
  

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