/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package sdsimulator.runnable;
import java.util.*;
import myuml.*;

/**
 *
 * @author Miguel Herreros
 */
public class VectorOrdenado extends Vector{
    private char criterio; //criterio de ordenación del vector. Con 'X' será or-
    //denación ascendente por valor de coordenada X y con 'Y', será ordenación 
    //ascendente por valor de coordenada 'Y'.
    
    public VectorOrdenado(int capacidad, char criterio){
        super(capacidad);
        this.criterio = criterio;
    }
    
    public void agregarMyObjects(MyObjects nuevo){
        MyObjects aux;
        int i, criterioNuevo, criterioAux;
        
        i=0;
        while (true){
            try{
                aux=(MyObjects)get(i);
                //.......................................
                //inserta ordenando por coordenada X
                if (this.criterio =='X'){
                    criterioNuevo = nuevo.getXY().getX();
                    criterioAux   =   aux.getXY().getX();
                }
                else{
                //inserta ordenando por coordenada Y
                    criterioNuevo = nuevo.getXY().getY();
                    criterioAux   =   aux.getXY().getY();
                }
                //.......................................   
                if  (criterioNuevo < criterioAux){
                    add(i, nuevo);
                    break;
                }
                else
                    i++;
            }
            catch (ArrayIndexOutOfBoundsException e){
                add(i,nuevo);
                break;
            }
        }
    }
    
    public MyObjects getByID(String id){
        MyObjects myObject;
        for (int i=0; i<size(); i++){
            myObject= (MyObjects)get(i);
            if (id.compareTo(myObject.getID())==0)
                return myObject;
        }
        return null;
    }
}
