1818
1919import static com .google .common .base .Preconditions .checkNotNull ;
2020
21+ import com .google .common .base .Function ;
22+ import com .google .common .collect .Iterators ;
23+
2124import java .util .Iterator ;
2225import java .util .Objects ;
2326
@@ -29,30 +32,6 @@ public class BlobListResult implements ListResult<Blob> {
2932 private final ListResult <BlobInfo > infoList ;
3033 private final Storage storage ;
3134
32- private class BlobListIterator implements Iterator <Blob > {
33-
34- private final Iterator <BlobInfo > blobInfoIterator ;
35-
36- public BlobListIterator () {
37- this .blobInfoIterator = infoList .iterator ();
38- }
39-
40- @ Override
41- public boolean hasNext () {
42- return blobInfoIterator .hasNext ();
43- }
44-
45- @ Override
46- public Blob next () {
47- return new Blob (storage , blobInfoIterator .next ());
48- }
49-
50- @ Override
51- public void remove () {
52- blobInfoIterator .remove ();
53- }
54- }
55-
5635 public BlobListResult (Storage storage , ListResult <BlobInfo > infoList ) {
5736 this .storage = checkNotNull (storage );
5837 this .infoList = checkNotNull (infoList );
@@ -74,7 +53,12 @@ public ListResult<Blob> nextPage() {
7453
7554 @ Override
7655 public Iterator <Blob > iterator () {
77- return new BlobListIterator ();
56+ return Iterators .transform (infoList .iterator (), new Function <BlobInfo , Blob >() {
57+ @ Override
58+ public Blob apply (BlobInfo info ) {
59+ return new Blob (storage , info );
60+ }
61+ });
7862 }
7963
8064 @ Override
0 commit comments