Class 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

      Constructors 
      Constructor Description
      Locator()  
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      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.