com.google.web.bindery.requestfactory.server

## Class ResolverServiceLayer

- java.lang.Object
- - com.google.web.bindery.requestfactory.server.ServiceLayer
  - - com.google.web.bindery.requestfactory.server.ServiceLayerDecorator
    - - com.google.web.bindery.requestfactory.server.ResolverServiceLayer

    final class ResolverServiceLayer
    extends ServiceLayerDecorator

Implements all of the resolution methods in ServiceLayer.

### 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 and Description
`ResolverServiceLayer()`

### Method Summary

All Methods Instance Methods Concrete Methods
`java.lang.ClassLoader` `getDomainClassLoader()` Returns the ClassLoader that should be used when attempting to access domain classes or resources.
`java.lang.Class<? extends BaseProxy>` `resolveClass(java.lang.String typeToken)` Given a type token previously returned from `ServiceLayer.resolveTypeToken(Class)`, return the Class literal associated with the token.
`<T> java.lang.Class<? extends T>` `resolveClientType(java.lang.Class<?> domainClass, java.lang.Class<T> clientClass, boolean required)` Determine the type used by the client code to represent a given domain type.
`java.lang.Class<?>` `resolveDomainClass(java.lang.Class<?> clazz)` Determine the domain (server-side) type that the given client type is mapped to.
`java.lang.reflect.Method` `resolveDomainMethod(java.lang.String operation)` Return the domain service method associated with a RequestContext method declaration.
`java.lang.Class<? extends RequestContext>` `resolveRequestContext(java.lang.String operation)` Find a RequestContext that should be used to fulfill the requested operation.
`java.lang.reflect.Method` `resolveRequestContextMethod(java.lang.String operation)` Find a RequestContext method declaration by name.
`java.lang.Class<? extends RequestFactory>` `resolveRequestFactory(java.lang.String binaryName)` Loads and validates a RequestFactory interface.
`java.lang.Class<?>` `resolveServiceClass(java.lang.Class<? extends RequestContext> requestContextClass)` Given a `RequestContext` method, find the service class referenced in the `Service` or `ServiceName` annotation.
`java.lang.String` `resolveTypeToken(java.lang.Class<? extends BaseProxy> clazz)` Return a string used to represent the given type in the wire protocol.

### Methods inherited from class com.google.web.bindery.requestfactory.server.ServiceLayerDecorator

`createDomainObject, createLocator, createServiceInstance, createServiceLocator, die, getGetter, getId, getIdType, getNext, getProperty, getRequestReturnType, getSetter, getTop, getVersion, invoke, isLive, loadDomainObject, loadDomainObjects, report, report, requiresServiceLocator, resolveLocator, resolveServiceLocator, setProperty, validate`

### 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

#### ResolverServiceLayer

    ResolverServiceLayer()

### Method Detail

#### getDomainClassLoader

    public java.lang.ClassLoader getDomainClassLoader()

Description copied from class: `ServiceLayer`
Returns the ClassLoader that should be used when attempting to access domain classes or resources.

The default implementation returns `Thread.currentThread().getContextClassLoader()`.

Overrides:
  `getDomainClassLoader` in class `ServiceLayerDecorator`

#### resolveClass

    public java.lang.Class<? extends BaseProxy> resolveClass(java.lang.String typeToken)

Description copied from class: `ServiceLayer`
Given a type token previously returned from `ServiceLayer.resolveTypeToken(Class)`, return the Class literal associated with the token.

Overrides:
  `resolveClass` in class `ServiceLayerDecorator`
Parameters:
  `typeToken` - a string token
Returns:
  the type represented by the token

#### resolveClientType

    public <T> java.lang.Class<? extends T> resolveClientType(java.lang.Class<?> domainClass,
                                                              java.lang.Class<T> clientClass,
                                                              boolean required)

Description copied from class: `ServiceLayer`
Determine the type used by the client code to represent a given domain type. If multiple proxy types have been mapped to the same domain type, the `clientType` parameter is used to ensure assignability.

Overrides:
  `resolveClientType` in class `ServiceLayerDecorator`
Parameters:
  `domainClass` - the server-side type to be transported to the client
  `clientClass` - the type to which the returned type must be assignable
  `required` - if `true` and no mapping is available, throw an exception, otherwise the method will return `null`
Returns:
  a class that represents `domainClass` on the client which is assignable to `clientType`

#### resolveDomainClass

    public java.lang.Class<?> resolveDomainClass(java.lang.Class<?> clazz)

Description copied from class: `ServiceLayer`
Determine the domain (server-side) type that the given client type is mapped to.

Overrides:
  `resolveDomainClass` in class `ServiceLayerDecorator`
Parameters:
  `clazz` - a client-side type
Returns:
  the domain type that `clientType` represents

#### resolveDomainMethod

    public java.lang.reflect.Method resolveDomainMethod(java.lang.String operation)

Description copied from class: `ServiceLayer`
Return the domain service method associated with a RequestContext method declaration. The `requestContextMethod` will have been previously resolved by `#resolveRequestContextMethod(String, String)`.

Overrides:
  `resolveDomainMethod` in class `ServiceLayerDecorator`
Returns:
  the domain service method that should be invoked

#### resolveRequestContext

    public java.lang.Class<? extends RequestContext> resolveRequestContext(java.lang.String operation)

Description copied from class: `ServiceLayer`
Find a RequestContext that should be used to fulfill the requested operation.

Overrides:
  `resolveRequestContext` in class `ServiceLayerDecorator`
Parameters:
  `operation` - the operation
Returns:
  the RequestContext or `null` if no RequestContext exists that can fulfill the operation

#### resolveRequestContextMethod

    public java.lang.reflect.Method resolveRequestContextMethod(java.lang.String operation)

Description copied from class: `ServiceLayer`
Find a RequestContext method declaration by name.

Overrides:
  `resolveRequestContextMethod` in class `ServiceLayerDecorator`
Parameters:
  `operation` - the operation's name
Returns:
  the method declaration, or `null` if the method does not exist

#### resolveRequestFactory

    public java.lang.Class<? extends RequestFactory> resolveRequestFactory(java.lang.String binaryName)

Description copied from class: `ServiceLayer`
Loads and validates a RequestFactory interface.

Overrides:
  `resolveRequestFactory` in class `ServiceLayerDecorator`
Parameters:
  `binaryName` - the RequestFactory's type token (usually the type's binary name)
Returns:
  the RequestFactory type

#### resolveServiceClass

    public java.lang.Class<?> resolveServiceClass(java.lang.Class<? extends RequestContext> requestContextClass)

Description copied from class: `ServiceLayer`
Given a `RequestContext` method, find the service class referenced in the `Service` or `ServiceName` annotation.

Overrides:
  `resolveServiceClass` in class `ServiceLayerDecorator`
Parameters:
  `requestContextClass` - a RequestContext interface
Returns:
  the type of service to use

#### resolveTypeToken

    public java.lang.String resolveTypeToken(java.lang.Class<? extends BaseProxy> clazz)

Description copied from class: `ServiceLayer`
Return a string used to represent the given type in the wire protocol.

Overrides:
  `resolveTypeToken` in class `ServiceLayerDecorator`
Parameters:
  `clazz` - a client-side EntityProxy or ValueProxy type
Returns:
  the type token used to represent the proxy type