Class LocatorServiceLayer
- java.lang.Object
-
- com.google.web.bindery.requestfactory.server.ServiceLayer
-
- com.google.web.bindery.requestfactory.server.ServiceLayerDecorator
-
- com.google.web.bindery.requestfactory.server.LocatorServiceLayer
-
final class LocatorServiceLayer extends ServiceLayerDecorator
Adds support to the ServiceLayer chain for usingLocator
andServiceLocator
helper objects.
-
-
Field Summary
-
Fields inherited from class com.google.web.bindery.requestfactory.server.ServiceLayerDecorator
next
-
Fields inherited from class com.google.web.bindery.requestfactory.server.ServiceLayer
top
-
-
Constructor Summary
Constructors Constructor Description LocatorServiceLayer()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> T
createDomainObject(java.lang.Class<T> clazz)
Create an instance of the requested domain type.<T extends Locator<?,?>>
TcreateLocator(java.lang.Class<T> clazz)
Create an instance of the requestedLocator
type.java.lang.Object
createServiceInstance(java.lang.Class<? extends RequestContext> requestContext)
Create an instance of a service object that can be used as the target for the given method invocation.<T extends ServiceLocator>
TcreateServiceLocator(java.lang.Class<T> serviceLocatorType)
Create an instance of the requestedServiceLocator
type.java.lang.Object
getId(java.lang.Object domainObject)
Return the persistent id for a domain object.java.lang.Class<?>
getIdType(java.lang.Class<?> domainType)
Returns the type of object the domain type'sfindFoo()
orLocator.getId()
expects to receive.java.lang.Object
getVersion(java.lang.Object domainObject)
May returnnull
to indicate that the domain object has not been persisted.boolean
isLive(java.lang.Object domainObject)
Returnstrue
if the given domain object is still live (i.e.<T> T
loadDomainObject(java.lang.Class<T> clazz, java.lang.Object domainId)
Load an object from the backing store.boolean
requiresServiceLocator(java.lang.reflect.Method contextMethod, java.lang.reflect.Method domainMethod)
Returns true if the context method returns aRequest
and the domain method is non-static.java.lang.Class<? extends Locator<?,?>>
resolveLocator(java.lang.Class<?> domainType)
Return the type ofLocator
that should be used to access the given domain type.java.lang.Class<? extends ServiceLocator>
resolveServiceLocator(java.lang.Class<? extends RequestContext> requestContext)
Given a RequestContext method declaration, resolve theServiceLocator
that should be used when invoking the domain method.-
Methods inherited from class com.google.web.bindery.requestfactory.server.ServiceLayerDecorator
die, getDomainClassLoader, getGetter, getNext, getProperty, getRequestReturnType, getSetter, getTop, invoke, loadDomainObjects, report, report, resolveClass, resolveClientType, resolveDomainClass, resolveDomainMethod, resolveRequestContext, resolveRequestContextMethod, resolveRequestFactory, resolveServiceClass, resolveTypeToken, setProperty, validate
-
Methods inherited from class com.google.web.bindery.requestfactory.server.ServiceLayer
create
-
-
-
-
Method Detail
-
createDomainObject
public <T> T createDomainObject(java.lang.Class<T> clazz)
Description copied from class:ServiceLayer
Create an instance of the requested domain type.- Overrides:
createDomainObject
in classServiceLayerDecorator
- Type Parameters:
T
- the requested domain type- Parameters:
clazz
- the requested domain type- Returns:
- an instance of the requested domain type
-
createLocator
public <T extends Locator<?,?>> T createLocator(java.lang.Class<T> clazz)
Description copied from class:ServiceLayer
Create an instance of the requestedLocator
type.- Overrides:
createLocator
in classServiceLayerDecorator
- Type Parameters:
T
- the requested Locator type- Parameters:
clazz
- the requested Locator type- Returns:
- an instance of the requested Locator type
-
createServiceInstance
public java.lang.Object createServiceInstance(java.lang.Class<? extends RequestContext> requestContext)
Description copied from class:ServiceLayer
Create an instance of a service object that can be used as the target for the given method invocation.- Overrides:
createServiceInstance
in classServiceLayerDecorator
- Parameters:
requestContext
- the RequestContext type for which a service object must be instantiated.- Returns:
- an instance of the requested service object
-
createServiceLocator
public <T extends ServiceLocator> T createServiceLocator(java.lang.Class<T> serviceLocatorType)
Description copied from class:ServiceLayer
Create an instance of the requestedServiceLocator
type.- Overrides:
createServiceLocator
in classServiceLayerDecorator
- Type Parameters:
T
- the requested ServiceLocator type- Parameters:
serviceLocatorType
- the requested ServiceLocator type- Returns:
- an instance of the requested ServiceLocator type
-
getId
public java.lang.Object getId(java.lang.Object domainObject)
Description copied from class:ServiceLayer
Return the persistent id for a domain object. May returnnull
to indicate that the domain object has not been persisted. The value returned from this method must be a simple type (e.g. Integer, String) or a domain type for which a mapping to an EntityProxy or Value proxy exists.The values returned from this method may be passed to
ServiceLayer.loadDomainObject(Class, Object)
in the future.- Overrides:
getId
in classServiceLayerDecorator
- Parameters:
domainObject
- a domain object- Returns:
- the persistent id of the domain object or
null
if the object is not persistent
-
getIdType
public java.lang.Class<?> getIdType(java.lang.Class<?> domainType)
Description copied from class:ServiceLayer
Returns the type of object the domain type'sfindFoo()
orLocator.getId()
expects to receive.- Overrides:
getIdType
in classServiceLayerDecorator
- Parameters:
domainType
- a domain entity type- Returns:
- the type of the persistent id value used to represent the domain type
-
getVersion
public java.lang.Object getVersion(java.lang.Object domainObject)
Description copied from class:ServiceLayer
May returnnull
to indicate that the domain object has not been persisted. The value returned from this method must be a simple type (e.g. Integer, String) or a domain type for which a mapping to an EntityProxy or Value proxy exists.- Overrides:
getVersion
in classServiceLayerDecorator
- Parameters:
domainObject
- a domain object- Returns:
- the version of the domain object or
null
if the object is not persistent
-
isLive
public boolean isLive(java.lang.Object domainObject)
Description copied from class:ServiceLayer
Returnstrue
if the given domain object is still live (i.e. not deleted) in the backing store.- Overrides:
isLive
in classServiceLayerDecorator
- Parameters:
domainObject
- a domain entity- Returns:
true
ifdomainObject
could be retrieved at a later point in time
-
loadDomainObject
public <T> T loadDomainObject(java.lang.Class<T> clazz, java.lang.Object domainId)
Description copied from class:ServiceLayer
Load an object from the backing store. This method may returnnull
to indicate that the requested object is no longer available.- Overrides:
loadDomainObject
in classServiceLayerDecorator
- Type Parameters:
T
- the type of object to load- Parameters:
clazz
- the type of object to loaddomainId
- an id previously returned fromServiceLayer.getId(Object)
- Returns:
- the requested object or
null
if it is irretrievable
-
requiresServiceLocator
public boolean requiresServiceLocator(java.lang.reflect.Method contextMethod, java.lang.reflect.Method domainMethod)
Returns true if the context method returns aRequest
and the domain method is non-static.- Overrides:
requiresServiceLocator
in classServiceLayerDecorator
- Parameters:
contextMethod
- a method defined in a RequestContextdomainMethod
- a domain method- Returns:
true
if a ServiceLocator is required
-
resolveLocator
public java.lang.Class<? extends Locator<?,?>> resolveLocator(java.lang.Class<?> domainType)
Description copied from class:ServiceLayer
Return the type ofLocator
that should be used to access the given domain type.- Overrides:
resolveLocator
in classServiceLayerDecorator
- Parameters:
domainType
- a domain (server-side) type- Returns:
- the type of Locator to use, or
null
if the type conforms to the RequestFactory entity protocol
-
resolveServiceLocator
public java.lang.Class<? extends ServiceLocator> resolveServiceLocator(java.lang.Class<? extends RequestContext> requestContext)
Description copied from class:ServiceLayer
Given a RequestContext method declaration, resolve theServiceLocator
that should be used when invoking the domain method. This method will only be called ifServiceLayer.requiresServiceLocator(Method, Method)
returnedtrue
for the associated domain method.- Overrides:
resolveServiceLocator
in classServiceLayerDecorator
- Parameters:
requestContext
- the RequestContext for which a ServiceLocator must be located- Returns:
- the type of ServiceLocator to use
-
-