/*
 * ChartSerie.java
 *
 * Created on 3 de febrero de 2005, 10:48 AM
 */

package co.com.ddt.chart.line;


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

import co.com.ddt.chart.ChartSerie;
/**
 * Esta clase representa una serie propia de una gr&aacute;fica de tipo
 * lineal donde a un valor en el eje de las x´s corresponde un valor en el
 * eje de las y´s.
 * @author Mario Linares Vásquez
 */
public class LineChartSerie extends ChartSerie{
    
    
    
    /**
     * Valores de la serie en el eje de las x´s
     */    
   private Vector xValues;
    
      
    
    /**
     * Constructor de la serie que recibe el nombre de esta
     * @param serieName Nombre de la serie
     */
    public LineChartSerie(String serieName) {
        super(serieName);
        this.xValues = new Vector();
        this.size = 0;
        
    }
    
    
    /**
     * Este m&eacute;todo se utiliza para agregar una nueva
     * pareja (x,y) ala serie
     * @param x Nuevo valor para el eje de las x´s
     * @param y Nuevo valor para el eje de las y´s
     */    
    public void addValue(Object x, Object y){
        this.xValues.add(x);
        this.yValues.add(y);
        this.size++;
    }
    
    /**
     * M&eacute;todo consultor para un valor y de la serie
     * @param x Valor x indice del valor y
     * @return Valor y buscado
     */    
    public Object getValue(Object x){
        Object value = null;
        int index = this.xValues.indexOf(x);
        if(index != -1){
            value = this.yValues.elementAt(index);
        }
        return value;
    }
    
    /**
     *  M&eacute;todo consultor para el atributo xValues.
     * @return Valor del atributo xValues.
     */
    public java.util.Vector getXValues() {
        return xValues;
    }    
    
    /**
     *  M&eacute;todo modificador para el atributo xValues.
     * @param xValues Nuevo valor para el atributo xValues.
     */
    public void setXValues(java.util.Vector xValues) {
        this.xValues = xValues;
    }    
    
    
    /**
     * Este m&eacute;todo restorna los valores de la serie en formato de
     * <CODE>Hashtable</CODE>:
     * - key : valor x
     * - value : valor y
     * @return Datos de la serie
     */    
    public Hashtable getData(){
        Hashtable data = new Hashtable();
        Enumeration xEnum = this.xValues.elements();
        int index = 0;
        while(xEnum.hasMoreElements()){
            data.put(xEnum.nextElement(), yValues.elementAt(index));
            index++;
        }
        
        return data ;
        
    }
    
   
    
}
// “Copyright (C) <2008> Multilateral Investment Fund of the Inter-American Development Bank.
// Este archivo es parte de <ICT4BUS-PVL>
// < ICT4BUS-PVL > es software libre: usted puede redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General GNU publicada por la Fundación para el Software Libre, ya sea la versión 3 de la Licencia, o (a su elección) cualquier versión posterior.
// < ICT4BUS-PVL > se distribuye con la esperanza de que sea útil, pero SIN GARANTÍA ALGUNA; ni siquiera la garantía implícita MERCANTIL o de APTITUD PARA UN PROPÓSITO DETERMINADO. 
// Consulte los detalles de la Licencia Pública General GNU para obtener una información más detallada. 
// Debería haber recibido una copia de la Licencia Pública General GNU junto a este programa. En caso contrario, consulte http://www.gnu.org/licenses/.”