org.jclouds.collect.internal
Class ArgsToPagedIterable<T,I extends ArgsToPagedIterable<T,I>>

java.lang.Object
  extended by org.jclouds.collect.internal.ArgsToPagedIterable<T,I>
All Implemented Interfaces:
com.google.common.base.Function<IterableWithMarker<T>,PagedIterable<T>>, InvocationContext<I>
Direct Known Subclasses:
Arg0ToPagedIterable, ArgsToPagedIterable.FromCaller

@Beta
public abstract class ArgsToPagedIterable<T,I extends ArgsToPagedIterable<T,I>>
extends Object
implements com.google.common.base.Function<IterableWithMarker<T>,PagedIterable<T>>, InvocationContext<I>

Used to propagate the invoked method arguments during an advance in a PagedIterable.

In order to fetch the next page in the result set, subclasses may need to have the context of the initial request. This class propagates the arguments used in the original request, so they can be used to fetch the next page in the result set.


Nested Class Summary
static class ArgsToPagedIterable.FromCaller<T,I extends ArgsToPagedIterable.FromCaller<T,I>>
          Sometimes the arguments in the invoked method do not provide enough information to fetch the next page of the result set.
 
Field Summary
protected  GeneratedHttpRequest request
           
 
Constructor Summary
ArgsToPagedIterable()
           
 
Method Summary
 PagedIterable<T> apply(IterableWithMarker<T> input)
           
protected  List<Object> getArgs(GeneratedHttpRequest request)
           
protected abstract  com.google.common.base.Function<Object,IterableWithMarker<T>> markerToNextForArgs(List<Object> args)
           
 I setContext(HttpRequest request)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.google.common.base.Function
equals
 

Field Detail

request

protected GeneratedHttpRequest request
Constructor Detail

ArgsToPagedIterable

public ArgsToPagedIterable()
Method Detail

apply

public PagedIterable<T> apply(IterableWithMarker<T> input)
Specified by:
apply in interface com.google.common.base.Function<IterableWithMarker<T>,PagedIterable<T>>

getArgs

protected List<Object> getArgs(GeneratedHttpRequest request)

markerToNextForArgs

protected abstract com.google.common.base.Function<Object,IterableWithMarker<T>> markerToNextForArgs(List<Object> args)

setContext

public I setContext(HttpRequest request)
Specified by:
setContext in interface InvocationContext<I extends ArgsToPagedIterable<T,I>>


Copyright © 2009-2014 The Apache Software Foundation. All Rights Reserved.