/*
 * Created on Aug 2, 2004
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package gov.va.med.esr.common.persistent.lookup;

import java.io.Serializable;
import java.util.List;

import gov.va.med.fw.model.lookup.AbstractLookup;
import gov.va.med.fw.persistent.DAOException;


/**
 * @author Martin Francisco
 * 
 * TODO To change the template for this generated type comment go to Window -
 * Preferences - Java - Code Style - Code Templates
 */
public interface LookupsDAO
    extends Serializable
{
   // public List findAll() throws DAOException;
   // public AbstractLookup getByCode(String code) throws DAOException;

    /**
     * Returns all the predefined lookup objects of a particular type.
     * 
     * @return All the predefined lookup objects.
     * @throws DAOException
     *         Thrown when a persistence exception occurs.
     */
    public List findAll(Class lookupType) throws DAOException;
   /**
     * Returns the predefined lookup object with the specified code.
     * 
     * @param code
     *        The unique code to search.
     * @return The predefined lookup object.
     * @throws DAOException
     *         Thrown when a persistence exception occurs.
     */
    public AbstractLookup getByCode(Class lookupType, String code) throws DAOException;
    /**
     * Returns the predefined lookup object with the specified description
     * @param lookupType
     * @param description
     * @return
     * @throws DAOException
     */
    public AbstractLookup getByDescription(Class lookupType, String description) throws DAOException;

    /**
     * Returns the lookup object with the specified name
     * @param lookupType
     * @param name
     * @return
     * @throws DAOException
     */
    public AbstractLookup getByName(Class lookupType, String name) throws DAOException;

}