/*
 * ParameterList.java
 * 
 * Created on 11 de agosto de 2004, 6:30
 */

/**
 *
 * @author  Juan Ernesto Peña Kaltekis, Mario Linares Vásquez
 *
 * Esta clase representa una lista de parámetros simples
 * 
 * CONTROL DE CAMBIOS:
 *
 * Fecha        Autor       tipo        cambio      descripción
 *
 *
 */
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 una lista de parámteros simples
 * 
 * @author Juan Ernesto Peña Kaltekis, Mario Linares Vásquez
 */
public class ParameterList
{
	/**
	 * Es un Hashtable que tiene como llave un int que representa el id del
	 * parámtero, el objeto es de tipo <CODE>Parameter</CODE>
	 */
	private Hashtable parameters;

	/**
	 * Constructor por defecto de la clase ParameterList
	 */
	public ParameterList( )
	{
		// TODO: implement
		this.parameters = new Hashtable();
		this.loadData();
	}

	/**
	 * Hace una consulta en la tabla parametros_sistema por medio del método
	 * <CODE>query</CODE> de la clase <CODE>SqlUtilities</CODE> para cargar
	 * la lista de parámetros y llenar la variable parameters con los parámetros
	 * simples del sistema
	 * 
	 * @return booleano que indica si la operación fué exitosa
	 */
	public boolean loadData( )
	{
		try
		{
			Vector results = new Vector();
			results = SQLUtilities
					.query("SELECT para_sist_id FROM parametros_sistema;");
			for( int i = 0; i < results.size(); i++ )
			{
				Hashtable temp = new Hashtable();
				temp = (Hashtable) results.elementAt(i);
				Integer key = (Integer) temp.get("para_sist_id");
				this.parameters.put(key, new Parameter(key.intValue()));
			}
		}
		catch (QueryException qe)
		{
			System.out.println(qe.getMessage());
			return false;
		}
		return true;
	}

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

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

}