GWT 2.7.0

com.google.web.bindery.requestfactory.server
Class ReflectiveServiceLayer

java.lang.Object
  extended by com.google.web.bindery.requestfactory.server.ServiceLayer
      extended by com.google.web.bindery.requestfactory.server.ServiceLayerDecorator
          extended by com.google.web.bindery.requestfactory.server.ReflectiveServiceLayer

final class ReflectiveServiceLayer
extends ServiceLayerDecorator

Implements all methods that interact with domain 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
ReflectiveServiceLayer()
           
 
Method Summary
<T> T
createDomainObject(java.lang.Class<T> clazz)
          Create an instance of the requested domain type.
 java.lang.reflect.Method getGetter(java.lang.Class<?> domainType, java.lang.String property)
          Determine the method to invoke when retrieving the given property.
 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's findFoo() or Locator.getId() expects to receive.
 java.lang.Object getProperty(java.lang.Object domainObject, java.lang.String property)
          Retrieve the named property from the domain object.
 java.lang.reflect.Type getRequestReturnType(java.lang.reflect.Method contextMethod)
          Compute the return type for a method declared in a RequestContext by analyzing the generic method declaration.
 java.lang.reflect.Method getSetter(java.lang.Class<?> domainType, java.lang.String property)
          Determine the method to invoke when setting the given property.
 java.lang.Object getVersion(java.lang.Object domainObject)
          May return null to indicate that the domain object has not been persisted.
 java.lang.Object invoke(java.lang.reflect.Method domainMethod, java.lang.Object... args)
          Invoke a domain service method.
 boolean isLive(java.lang.Object domainObject)
          This implementation attempts to re-load the object from the backing store.
<T> T
loadDomainObject(java.lang.Class<T> clazz, java.lang.Object id)
          Load an object from the backing store.
 java.util.List<java.lang.Object> loadDomainObjects(java.util.List<java.lang.Class<?>> classes, java.util.List<java.lang.Object> domainIds)
          Load multiple objects from the backing store.
 void setProperty(java.lang.Object domainObject, java.lang.String property, java.lang.Class<?> expectedType, java.lang.Object value)
          Sets a property on a domain object.
<T> java.util.Set<ConstraintViolation<T>>
validate(T domainObject)
          Invoke a JSR 303 validator on the given domain object.
 
Methods inherited from class com.google.web.bindery.requestfactory.server.ServiceLayerDecorator
createLocator, createServiceInstance, createServiceLocator, die, getDomainClassLoader, getNext, getTop, report, report, requiresServiceLocator, resolveClass, resolveClientType, resolveDomainClass, resolveDomainMethod, resolveLocator, resolveRequestContext, resolveRequestContextMethod, resolveRequestFactory, resolveServiceClass, resolveServiceLocator, resolveTypeToken
 
Methods inherited from class com.google.web.bindery.requestfactory.server.ServiceLayer
create
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReflectiveServiceLayer

ReflectiveServiceLayer()
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 class ServiceLayerDecorator
Type Parameters:
T - the requested domain type
Parameters:
clazz - the requested domain type
Returns:
an instance of the requested domain type

getGetter

public java.lang.reflect.Method getGetter(java.lang.Class<?> domainType,
                                          java.lang.String property)
Description copied from class: ServiceLayer
Determine the method to invoke when retrieving the given property.

Overrides:
getGetter in class ServiceLayerDecorator
Parameters:
domainType - a domain entity type
property - the name of the property to be retrieved
Returns:
the Method that should be invoked to retrieve the property or null if the method could not be located

getId

public java.lang.Object getId(java.lang.Object domainObject)
Description copied from class: ServiceLayer
Return the persistent id for a domain object. May return null 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 class ServiceLayerDecorator
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's findFoo() or Locator.getId() expects to receive.

Overrides:
getIdType in class ServiceLayerDecorator
Parameters:
domainType - a domain entity type
Returns:
the type of the persistent id value used to represent the domain type

getProperty

public java.lang.Object getProperty(java.lang.Object domainObject,
                                    java.lang.String property)
Description copied from class: ServiceLayer
Retrieve the named property from the domain object.

Overrides:
getProperty in class ServiceLayerDecorator
Parameters:
domainObject - the domain object being examined
property - the property name
Returns:
the value of the property

getRequestReturnType

public java.lang.reflect.Type getRequestReturnType(java.lang.reflect.Method contextMethod)
Description copied from class: ServiceLayer
Compute the return type for a method declared in a RequestContext by analyzing the generic method declaration.

Overrides:
getRequestReturnType in class ServiceLayerDecorator

getSetter

public java.lang.reflect.Method getSetter(java.lang.Class<?> domainType,
                                          java.lang.String property)
Description copied from class: ServiceLayer
Determine the method to invoke when setting the given property.

Overrides:
getSetter in class ServiceLayerDecorator
Parameters:
domainType - a domain entity type
property - the name of the property to be set
Returns:
the Method that should be invoked to set the property or null if the method could not be located

getVersion

public java.lang.Object getVersion(java.lang.Object domainObject)
Description copied from class: ServiceLayer
May return null 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 class ServiceLayerDecorator
Parameters:
domainObject - a domain object
Returns:
the version of the domain object or null if the object is not persistent

invoke

public java.lang.Object invoke(java.lang.reflect.Method domainMethod,
                               java.lang.Object... args)
Description copied from class: ServiceLayer
Invoke a domain service method. The underlying eventually calls Method.invoke(Object, Object...).

Overrides:
invoke in class ServiceLayerDecorator
Parameters:
domainMethod - the method to invoke
args - the arguments to pass to the method
Returns:
the value returned from the method invocation

isLive

public boolean isLive(java.lang.Object domainObject)
This implementation attempts to re-load the object from the backing store.

Overrides:
isLive in class ServiceLayerDecorator
Parameters:
domainObject - a domain entity
Returns:
true if domainObject could be retrieved at a later point in time

loadDomainObject

public <T> T loadDomainObject(java.lang.Class<T> clazz,
                              java.lang.Object id)
Description copied from class: ServiceLayer
Load an object from the backing store. This method may return null to indicate that the requested object is no longer available.

Overrides:
loadDomainObject in class ServiceLayerDecorator
Type Parameters:
T - the type of object to load
Parameters:
clazz - the type of object to load
id - an id previously returned from ServiceLayer.getId(Object)
Returns:
the requested object or null if it is irretrievable

loadDomainObjects

public java.util.List<java.lang.Object> loadDomainObjects(java.util.List<java.lang.Class<?>> classes,
                                                          java.util.List<java.lang.Object> domainIds)
Description copied from class: ServiceLayer
Load multiple objects from the backing store. This method is intended to allow more efficient access to the backing store by providing all objects referenced in an incoming payload.

The default implementation of this method will delegate to ServiceLayer.loadDomainObject(Class, Object).

Overrides:
loadDomainObjects in class ServiceLayerDecorator
Parameters:
classes - type type of each object to load
domainIds - the ids previously returned from ServiceLayer.getId(Object)
Returns:
the requested objects, elements of which may be null if the requested objects were irretrievable

setProperty

public void setProperty(java.lang.Object domainObject,
                        java.lang.String property,
                        java.lang.Class<?> expectedType,
                        java.lang.Object value)
Description copied from class: ServiceLayer
Sets a property on a domain object.

Overrides:
setProperty in class ServiceLayerDecorator
Parameters:
domainObject - the domain object to operate on
property - the name of the property to set
expectedType - the type of the property
value - the new value

validate

public <T> java.util.Set<ConstraintViolation<T>> validate(T domainObject)
Description copied from class: ServiceLayer
Invoke a JSR 303 validator on the given domain object. If no validator is available, this method is a no-op.

Overrides:
validate in class ServiceLayerDecorator
Type Parameters:
T - the type of data being validated
Parameters:
domainObject - the domain objcet to validate
Returns:
the violations associated with the domain object

GWT 2.7.0