[ https://issues.apache.org/jira/browse/GIRAPH-221?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alessandro Presta updated GIRAPH-221: ------------------------------------- Description: Is there any particular reason why BasicVertex implements Iterable? It seems to me that doing {code:java} for (I neighbor : vertex) {code} is not that explicit, and {code:java} for (I neighbor : this) {code} gets even obscure (which may be why all examples in the codebase explicitly instantiate an iterator and call next()). What I propose is a more explicit {code:java} Iterator<I> outEdgesIterator() {code} and also a convenient {code:java} Iterable<I> outEdges() {code} so, for example, an algorithm can use {code:java} for (IntWritable neighbor : outEdges()) {code} was: Is there any particular reason why BasicVertex implements Iterable? It seems to me that doing {code:java} for (I neighbor : vertex) {code} is not that explicit, and {code:java} for (I neighbor : this) {code} gets even obscure (which may be why all examples in the codebase explicitly instantiate an iterator and call next()). What I propose is a more explicit {code:java} Iterator<I> outEdgesIterator() {code} and also a convenient {code:java} Iterable<I> outEdges() {code} so, for example, an algorithm can use {code:java} for (int neighbor : outEdges()) {code} > Make iteration over edges more explicit > --------------------------------------- > > Key: GIRAPH-221 > URL: https://issues.apache.org/jira/browse/GIRAPH-221 > Project: Giraph > Issue Type: Improvement > Components: graph > Reporter: Alessandro Presta > Assignee: Alessandro Presta > Priority: Minor > > Is there any particular reason why BasicVertex implements Iterable? > It seems to me that doing > {code:java} > for (I neighbor : vertex) > {code} > is not that explicit, and > {code:java} > for (I neighbor : this) > {code} > gets even obscure (which may be why all examples in the codebase explicitly > instantiate an iterator and call next()). > What I propose is a more explicit > {code:java} > Iterator<I> outEdgesIterator() > {code} > and also a convenient > {code:java} > Iterable<I> outEdges() > {code} > so, for example, an algorithm can use > {code:java} > for (IntWritable neighbor : outEdges()) > {code} -- 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