|
GWT 2.7.0 | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.google.web.bindery.requestfactory.gwt.client.RequestBatcher<F,C>
F
- the type of RequestFactoryC
- any RequestContext typepublic abstract class RequestBatcher<F extends RequestFactory,C extends RequestContext>
A RequestBatcher is a convenience class that allows RequestFactory operations to be aggregated over a single tick of the event loop and sent as one HTTP request. Instances of RequestBatcher are reusable, so they may be used as application-wide singleton objects or within a particular subsystem or UI.
Subclasses need only to provide the instance of the RequestFactory used by the application and a method to provide a "default" RequestContext from the RequestFactory.
public class MyRequestBatcher extends RequestBatcherA singleton or otherwise scoped instance of RequestBatcher should be injected into consuming classes. The{ public MyRequestBatcher() { // MyRequestFactory could also be injected super(GWT.create(MyRequestFactory.class)); } protected MyRequestContext createContext(MyRequestFactory factory) { return factory.myRequestContext(); } }
RequestContext.fire()
and
Request.fire()
methods reachable from the RequestContext returned from
get()
will not trigger an HTTP request. The
RequestContext.fire(Receiver)
and
Request.fire(Receiver)
methods will register their associated Receivers as
usual. This allows consuming code to be written that can be used with or
without a RequestBatcher.
When an application uses multiple RequestContext types, the
RequestContext.append(RequestContext)
method can be used to chain
multiple RequestContext objects together:
class MyRequestBatcher { public OtherRequestContext otherContext() { return get().append(getFactory().otherContext()); } }
Scheduler.scheduleFinally(ScheduledCommand)
Constructor Summary | |
---|---|
protected |
RequestBatcher(F requestFactory)
|
Method Summary | |
---|---|
protected abstract C |
createContext(F requestFactory)
Subclasses must implement this method to return an instance of a RequestContext. |
C |
get()
Returns a mutable RequestContext . |
C |
get(Receiver<java.lang.Void> receiver)
Returns a mutable RequestContext and enqueues the given receiver to
be called as though it had been passed directly to
RequestContext.fire(Receiver) . |
F |
getRequestFactory()
Convenience access to the RequestFactory instance to aid developers using multiple RequestContext types. |
protected Scheduler |
getScheduler()
Returns Scheduler.get() , but may be overridden for testing
purposes. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
protected RequestBatcher(F requestFactory)
Method Detail |
---|
public C get()
RequestContext
.
public C get(Receiver<java.lang.Void> receiver)
RequestContext
and enqueues the given receiver to
be called as though it had been passed directly to
RequestContext.fire(Receiver)
.
public F getRequestFactory()
RequestBatcher<MyRequestFactory, MyRequestContext> batcher; public void useOtherRequestContext() { OtherRequestContext ctx = batcher.get().append(batcher.getFactory().otherContext()); ctx.someOtherMethod().to(someReceiver); }
protected abstract C createContext(F requestFactory)
protected Scheduler getScheduler()
Scheduler.get()
, but may be overridden for testing
purposes.
|
GWT 2.7.0 | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |