/* 
 * ComplaintCategoryList.java
 *
 * Created on 11 de agosto de 2004, 11:36 --> fecha de creación del archivo
 */

package com.fenalco.entities;

import java.util.Hashtable;
import java.util.Vector;

import com.fenalco.utilities.database.QueryException;
import com.fenalco.utilities.database.SQLUtilities;

/**
 * Esta clase representa la tabla categoria_reclamo. Contiene un listado con los
 * distintos tipos de reclamos que puede enviar un usuario del sistema.
 * 
 * @author Néstor Romero León, Mario Linares Vásquez
 */
public class ComplaintCategoryList
{
	/**
	 * Este <CODE>Hastable</CODE> contiene las entradas de la tabla
	 * categoria_reclamo en la forma: key: int complaintCategoryId value: Objeto
	 * ComplaintCategory
	 */
	private Hashtable categories;

	/**
	 * Constructor por omisión, crea una objeto <CODE>ComplaintCategoryList
	 * </CODE> y llama al método loaData para cargar los datos de la base de
	 * datos.
	 */
	public ComplaintCategoryList( )
	{
		// TODO: implement
		this.categories = new Hashtable();
		this.loadData();
	}

	/**
	 * Este método carga la tabla categoria_reclamo en el objeto. Realiza la
	 * operación de carga por medio del método <CODE>query</CODE> de la clase
	 * <CODE>SQLUtilities</CODE>.
	 * 
	 * @return Valor booleano que indica si la operación tuvo éxito o no
	 */
	public boolean loadData( )
	{
		try
		{
			Vector results = new Vector();
			results = SQLUtilities
					.query("SELECT cate_recl_id FROM categoria_reclamo;");
			for( int i = 0; i < results.size(); i++ )
			{
				Hashtable temp = new Hashtable();
				temp = (Hashtable) results.elementAt(i);
				Integer key = (Integer) temp.get("cate_recl_id");
				this.categories.put(key, new ComplaintCategory(key.intValue()));
			}
		}
		catch (QueryException qe)
		{
			System.out.println(qe.getMessage());
			return false;
		}
		return true;
	}

	/**
	 * Consultor para el atributo categories.
	 * 
	 * @return Valor del atributo categories.
	 */
	public java.util.Hashtable getCategories( )
	{
		return categories;
	}

	/**
	 * Modificador para el atributo categories.
	 * 
	 * @param categories
	 *            Nuevo valor del atributo categories.
	 */
	public void setCategories( java.util.Hashtable categories )
	{
		this.categories = categories;
	}

}