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

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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