Interface Mapper.getFieldValue

/** 
 * If a specialized field value can't be covered by the
 * <code>SearchServiceMapper.getValue()
 * <code> functionality this method 
 * should be overridden in the mapper for the specific search 
 *   service. 
 * @param objList list of entity objects for this specific 
 *   mappers service id.  
 * @param field the field whose value is required. 
 */ 
Object getFieldValue(final SearchServiceKey serviceId, 
   final List objList, final SearchServiceFieldDtls fieldDtls);

L'infrastructure Generic Search Server essaie de récupérer une valeur d'attribut d'entité à partir d'une liste d'objets à l'aide des métadonnées de zone récupérées depuis la table des zones du service de recherche. Généralement, les listes objectLists contiennent des structs DTLS d'entité. Dans ce cas, il est simple pour Generic Search Server d'utiliser le reflet afin d'identifier l'attribut correct et d'obtenir sa valeur (c'est exactement ce qui se passe en arrière-plan).

Toutefois, si la liste objectList contient autre chose que la struct DTLS d'entité (comme c'est le cas d'une recherche de personne, où une liste AddressElementDtlsList est présente, elle-même contenant une struct AddressElement unique), alors la méthode d'interface Mapper.getFieldValue doit être implémentée par les développeurs de la recherche.

La méthode d'interface Mapper.getFieldValue doit être implémentée lorsqu'un associateur ne peut automatiquement mapper une valeur d'attribut spécifique. L'entité concernée et le nom de zone sont transmis par le paramètre de struct fieldDtls, et la valeur d'attribut peut être récupérée à partir de la liste objList à l'aide du reflet. Il incombe au développeur de recherche d'implémenter cette interface de méthode pour le ou les types concernés.

Les chaînes vides ne doivent pas être renvoyées à partir de cette méthode (la valeur nulle doit toujours être renvoyée).