public interface RequestFactory
Limitations on the transferrability of types.
RequestFactory currently supports the transfer of basic value types, entity
types, and collections, with limitations. The basic value types supported are
String
, Enum
, Boolean
, Character
, subtypes of
Number
, and Date
. Any value type not included in
this list may not be declared in the type signature of a service method, or
EntityProxy
. Collection
types supported are
List
and Set
with the restriction that a
collection must be homogeneous and only hold one type of value.
Polymorphism is not supported at this time. RequestFactory encoding and
decoding requires exact knowledge of the concrete type. If a method declares
a given type T
as a parameter or return type, only
T
's transferrable properties will be sent over the wire if it is
a proxy, even if the underlying domain value contains extra fields, in
effect, treating it as an instance of the supertype. Returning abstract
supertypes of value types is not supported (e.g. Object, Enum, Number).
FakeRequestFactory
,
InProcessRequestTransport
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
JSON_CONTENT_TYPE_UTF8
The JSON content type String.
|
Modifier and Type | Method and Description |
---|---|
<P extends EntityProxy> |
find(EntityProxyId<P> proxyId)
Return a request to find a fresh instance of the referenced proxy.
|
EventBus |
getEventBus()
Returns the event bus this factory's events are posted on, which was set
via
initialize(com.google.web.bindery.event.shared.EventBus) . |
java.lang.String |
getHistoryToken(java.lang.Class<? extends EntityProxy> clazz)
Get a
History compatible token that
represents the given class. |
java.lang.String |
getHistoryToken(EntityProxyId<?> proxy)
Get a
History compatible token that
represents the given proxy class. |
java.lang.Class<? extends EntityProxy> |
getProxyClass(java.lang.String historyToken)
Return the class object which may be used to create new instances of the
type of this token, via
RequestContext.create(java.lang.Class<T>) . |
<T extends EntityProxy> |
getProxyId(java.lang.String historyToken)
Return the appropriate
EntityProxyId using a string returned from
getHistoryToken(EntityProxyId) . |
RequestTransport |
getRequestTransport()
Returns the RequestTransport set via
initialize(com.google.web.bindery.event.shared.EventBus) . |
ProxySerializer |
getSerializer(ProxyStore store)
Returns a ProxySerializer that can encode and decode the various
EntityProxy and ValueProxy types reachable from the RequestFactory.
|
void |
initialize(EventBus eventBus)
Start this request factory with a
DefaultRequestTransport
. |
void |
initialize(EventBus eventBus,
RequestTransport transport)
Start this request factory with a user-provided transport.
|
static final java.lang.String JSON_CONTENT_TYPE_UTF8
<P extends EntityProxy> Request<P> find(EntityProxyId<P> proxyId)
RequestContext.find(EntityProxyId)
, which supports chained
requests.proxyId
- an EntityProxyId
instance of type PRequest
objectRequestContext.find(EntityProxyId)
EventBus getEventBus()
initialize(com.google.web.bindery.event.shared.EventBus)
.EventBus
associated with this instancejava.lang.String getHistoryToken(java.lang.Class<? extends EntityProxy> clazz)
History
compatible token that
represents the given class. It can be processed by
getProxyClass(String)
clazz
- a Class object for an EntityProxy
subclassHistory
compatible tokenjava.lang.String getHistoryToken(EntityProxyId<?> proxy)
History
compatible token that
represents the given proxy class. It can be processed by
getProxyClass(String)
.
The history token returned for an EntityProxyId associated with a newly-created (future) EntityProxy will differ from the token returned by this method after the EntityProxy has been persisted. Once an EntityProxy has been persisted, the return value for this method will always be stable, regardless of when the EntityProxyId was retrieved relative to the persist operation. In other words, the "future" history token returned for an as-yet-unpersisted EntityProxy is only valid for the duration of the RequestFactory's lifespan.
proxy
- an EntityProxyId
instanceHistory
compatible tokenjava.lang.Class<? extends EntityProxy> getProxyClass(java.lang.String historyToken)
RequestContext.create(java.lang.Class<T>)
. The token may
represent either a proxy instance (see getHistoryToken(java.lang.Class<? extends com.google.web.bindery.requestfactory.shared.EntityProxy>)
) or a proxy
class (see getProxyClass(java.lang.String)
).historyToken
- a String tokenEntityProxy
subclass<T extends EntityProxy> EntityProxyId<T> getProxyId(java.lang.String historyToken)
EntityProxyId
using a string returned from
getHistoryToken(EntityProxyId)
.historyToken
- a String tokenEntityProxyId
RequestTransport getRequestTransport()
initialize(com.google.web.bindery.event.shared.EventBus)
.RequestTransport
associated with this instanceProxySerializer getSerializer(ProxyStore store)
store
- a helper object for the ProxySerializer to provide low-level
storage accessDefaultProxyStore
void initialize(EventBus eventBus)
DefaultRequestTransport
.eventBus
- an EventBus
void initialize(EventBus eventBus, RequestTransport transport)
eventBus
- an EventBus
transport
- a RequestTransport
instance