GWT 2.7.0

## com.google.web.bindery.requestfactory.shared
Class Locator<T,I>

    java.lang.Object
      com.google.web.bindery.requestfactory.shared.Locator<T,I>

Type Parameters:
  `T` - the type of domain object the Locator will operate on
  `I` - the type of object the Locator expects to use as an id for the domain object

Direct Known Subclasses:
  ValueLocator

    public abstract class Locator<T,I>

extends java.lang.Object

A Locator allows entity types that do not conform to the RequestFactory entity protocol to be used. Instead of attempting to use a `findFoo()`, `getId()`, and `getVersion()` declared in the domain entity type, an instance of a Locator will be created to provide implementations of these methods.

Locator subtypes must be default instantiable (i.e. public static types with a no-arg constructor). Instances of Locators may be retained and reused by the RequestFactory service layer.

See Also:
  `ProxyFor.locator()`

Constructor Summary
`Locator()`

Method Summary
`abstract T` | `create(java.lang.Class<? extends T> clazz)` Create a new instance of the requested type.
`abstract T` | `find(java.lang.Class<? extends T> clazz, I id)` Retrieve an object.
`abstract java.lang.Class<T>` | `getDomainType()` Returns the `T` type.
`abstract I` | `getId(T domainObject)` Returns a domain object to be used as the id for the given object.
`abstract java.lang.Class<I>` | `getIdType()` Returns the `I` type.
`abstract java.lang.Object` | `getVersion(T domainObject)` Returns a domain object to be used as the version for the given object.
`boolean` | `isLive(T domainObject)` Returns a value indicating if the domain object should no longer be considered accessible.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### Locator

    public Locator()

Method Detail

### create

    public abstract T create(java.lang.Class<? extends T> clazz)

  Create a new instance of the requested type.

  Parameters:
    `clazz` - the type of object to create
  Returns:
    the new instance of the domain type

### find

    public abstract T find(java.lang.Class<? extends T> clazz,
                           I id)

  Retrieve an object. May return `null` to indicate that the requested object could not be found.

  Parameters:
    `clazz` - the type of object to retrieve
    `id` - an id previously returned from `getId(Object)`
  Returns:
    the requested object or `null` if it could not be found

### getDomainType

    public abstract java.lang.Class<T> getDomainType()

  Returns the `T` type.

### getId

    public abstract I getId(T domainObject)

  Returns a domain object to be used as the id for the given object. This method may return `null` if the object has not been persisted or should be treated as irretrievable.

  Parameters:
    `domainObject` - the object to obtain an id for
  Returns:
    the object's id or `null`

### getIdType

    public abstract java.lang.Class<I> getIdType()

  Returns the `I` type.

### getVersion

    public abstract java.lang.Object getVersion(T domainObject)

  Returns a domain object to be used as the version for the given object. This method may return `null` if the object has not been persisted or should be treated as irretrievable.

  Parameters:
    `domainObject` - the object to obtain an id for
  Returns:
    the object's version or `null`

### isLive

    public boolean isLive(T domainObject)

  Returns a value indicating if the domain object should no longer be considered accessible. This method might return false if the record underlying the domain object had been deleted as a side-effect of processing a request.

  The default implementation of this method uses `getId(Object)` and `find(Class, Object)` to determine if an object can be retrieved.

GWT 2.7.0