/*
 * CommunityList.java
 *
 * Created on 25 de agosto de 2004, 03:23 PM
 */

package com.fenalco.entities;

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

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

/**
 * Esta clase representa un Listado de Comunidades
 * 
 * @author Juan Ernesto Peña K.
 */
public class CommunityList
{

	/**
	 * Este Hashtable contiene a las comunidades que componen la lista, este
	 * Hashtable está constituido de la siguiente forma: key: commnityId value:
	 * Objeto Community
	 */
	private Vector communities;

	/**
	 * Este constructor recibe como parámetro el id del proveedor <CODE>
	 * supplierId</CODE> y carga una lista de las comunidades creadas por dicho
	 * proveedor.
	 * 
	 * Este constructor llama a la función <CODE>loadData(supplierId)</CODE> y
	 * carga los datos de la base de datos en el objeto.
	 * 
	 * @param supplierId
	 *            Identificador del proveedor en la base de datos
	 */
	public CommunityList( int supplierId)
	{

		this.communities = new Vector();
		this.loadData(supplierId);
	}

	/**
	 * Este método carga desde la base de datos un listado de las comunidades
	 * que fueron creadas por el proveedor identificado por el parametro <CODE>
	 * supplierId</CODE>.
	 * 
	 * @param supplierId
	 *            Identificador del proveedor en la base de datos
	 * @return Valor booleano que identifica si la operación tuvo éxito o no
	 */
	public boolean loadData( int supplierId )
	{

		try
		{
			Vector results = new Vector();
                        String sql = "SELECT comu_id " +
                                     "FROM comunidad " +
                                     "WHERE empr_id=" + supplierId + " " +
                                     "ORDER BY comu_nombre ASC; ";
                        
                        //System.out.println( sql );
                        
			results = SQLUtilities.query( sql );
                        
                        
			for( int i = 0; i < results.size(); i++ )
			{
				Hashtable temp = new Hashtable();
				temp = (Hashtable) results.elementAt(i);
				Integer key = (Integer) temp.get("comu_id");
				this.communities.addElement( new Community(key.intValue()));
			}
		}
		catch (QueryException qe)
		{
			return false;
		}

		return true;
	}

	/**
	 * Consultor para el atributo communities.
	 * 
	 * @return Valor del atributo communities.
	 */
	public Vector getCommunities( )
	{
		return this.communities;
	}

	/**
	 * Modificador para el atributo communities.
	 * 
	 * @param suppliers
	 *            Nuevo valor del atributo communities.
	 */
	public void setCommunities( Vector communities )
	{
		this.communities = communities;
	}

        /*
	public static void main( String args[] )
	{
		CommunityList lol = new CommunityList(-1);
		Enumeration e = lol.getCommunities().elements();

		while( e.hasMoreElements() )
		{
			Community lo = new Community();
			lo = (Community) e.nextElement();
			System.out.println( lo.getId() + " :: " +  lo.getName() );
		}
                
                System.exit( 0 );

	}
        */

}