I think I can summarize what you are doing here.

You want to define the list method once.

That makes sense.

Maybe there's another way we can address this which doesn't leak references for 
simple case.

For example (excuse the bad name)

```java
Lister<Poo> pooLister = api.list();

ListWithMarker<Poo> firstPageOfPoo = pooLister.first();
ListWithMarker<Poo> nextPageOfPoo = pooLister.next(firstPageOfPoo.marker());
Iterable<Poo> flowingPoo = pooLister.continuation();
Subscription<Poo> whoahRx = pooLister.subscribe(pooObserver);

```

In this case, the special casing is in the `Lister` type, or better named 
decouples us. For the simple case, you can call first() and not leak references 
out. Not saying we support rx or streams in the future, but that support would 
be bound to the `Lister` type and could much more easily deal with platform 
differences inheritance of an Iterable type.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs-google/pull/62#issuecomment-60184177

Reply via email to