/* 
 * ShoppingListList.java
 *
 * Created on 12 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 el conjunto de listas de compra que puede almacenar un
 * minorista en el sistema.
 * 
 * @author Néstor Romero León
 */
public class ShoppingListList
{
	/**
	 * Este <CODE>Hashtable</CODE> representa el conjunto de listas de compra
	 * de un minorista. Esta construido de la siguiente forma: key:Identificador
	 * de la lista de compra <CODE>shoppingListId</CODE> value: Objeto del
	 * tipo <CODE>ShoppingList</CODE>
	 */
	private Hashtable shoppingLists;

	public ShoppingListList( int shopKeeperId)
	{
		this.shoppingLists = new Hashtable();
		this.loadData(shopKeeperId);
	}

	/**
	 * Carga las lista de compra del minorista que se recibe como parámetro.
	 * Utiliza el método <CODE>query</CODE> de la clase <CODE>SQLUtilities
	 * </CODE>.
	 * 
	 * @param shopKeeperId
	 *            Identificador del minorista
	 * @return Valor booleano que indica si la operación tuvo éxito o no.
	 */
	public boolean loadData( int shopKeeperId )
	{
		boolean response = true;
		Vector result = new Vector();
		Hashtable aux = new Hashtable();
		String sql = "SELECT list_comp_id" + " FROM lista_compra"
				+ " WHERE lista_compra.empr_id=" + shopKeeperId + ";";

		try
		{
			result = SQLUtilities.query(sql);
			for( int i = 0; i < result.size(); i++ )
			{

				aux = (Hashtable) result.elementAt(i);
				int shoppingListId = ((Integer) aux.get("list_comp_id"))
						.intValue();
				this.shoppingLists.put(new Integer(shoppingListId),
						new ShoppingList(shoppingListId));
			}

		}
		catch (QueryException qe)
		{
			//System.out.println("Query Error: "+qe);
			response = false;
		}
		return response;
	}

	/**
	 * Consultor para el atributo shoppingLists.
	 * 
	 * @return Valor del atributo shoppingLists.
	 */
	public Hashtable getShoppingLists( )
	{
		return shoppingLists;
	}

	/**
	 * Modificador para el atributo shoppingLists.
	 * 
	 * @param shoppingLists
	 *            Nuevo valor para el atributo shoppingLists.
	 */
	public void setShoppingLists( Hashtable shoppingLists )
	{
		this.shoppingLists = shoppingLists;
	}

	public static void main( String[] args )
	{
		ShoppingListList sll = new ShoppingListList(1);
		System.out.println(sll);
	}

}