package org.genedb.query;
/**
* An implementation of this knows how to fetch the items from a Result, and
* get more details on them. This is typically unnecessary if the items are
* already objects (or proxies) but very useful if the results contains a list
* of eg systematic ids
*
* @author art
*/
public interface Detailer {
/**
* Fetch more details on the given item eg a gene summary from a systematic id
*
* @param o the item
* @return A more detailed object, typically a domain object or a map
*/
public Object fetchDetailsFor(Object o);
/**
* Return what type of object the detailer returns ie domain object, map etc
*
* @return
*/
public String getDetailedObjectType(); // TODO Maybe should be enum returned
/**
* Get a name which can be used to choose a suitable view
*
* @return the name, may be null if a domain object is returned
*/
public String getDetailedObjectName();
}