Right now, GraphWindowStream claims to operate over vertex neighborhoods, but that's only the case because SimpleGraphStream instantiates GraphWindowStreams with streams keyed by a NeighborKeySelector.
SimpleGraphStream#slice would be more valuable if it did not exclusively key streams in this way. For example, I think the aggregating Connected Components example could benefit from GraphWindowStream#slice if it allowed keying the stream arbitrarily (i.e. by subtask index).
GraphWindowStreams do not necessarily operate on neighborhoods, only coincidentally. One option is to rename this class and alter it to control the stream keying itself, to enforce its neighbor operation claims.
Right now, GraphWindowStream claims to operate over vertex neighborhoods, but that's only the case because SimpleGraphStream instantiates GraphWindowStreams with streams keyed by a NeighborKeySelector.
SimpleGraphStream#slice would be more valuable if it did not exclusively key streams in this way. For example, I think the aggregating Connected Components example could benefit from GraphWindowStream#slice if it allowed keying the stream arbitrarily (i.e. by subtask index).
GraphWindowStreams do not necessarily operate on neighborhoods, only coincidentally. One option is to rename this class and alter it to control the stream keying itself, to enforce its neighbor operation claims.