package ip.gui;


import java.util.Vector;


public class EdgeElements {
    private Vector edgeVector = new Vector();

    public void add(EdgeElement e) {
        edgeVector.addElement(e);
    }

    public EdgeElement getElementAt(int i) {
        return (EdgeElement) edgeVector.elementAt(i);
    }

    public int getSize() {
        return edgeVector.size();
    }

    public EdgeElement getMinOpenNode() {
        if (getSize() == 0) return null;
        int minCost = 1000000;
        EdgeElement lowCostEdgeElement = new EdgeElement();
        lowCostEdgeElement.setOpen(true);
        lowCostEdgeElement.setCost(minCost);
        for (int i = 0; i < getSize(); i++) {
            EdgeElement el = getElementAt(i);
            if (!el.isOpen()) continue;
            if (el.getCost() > lowCostEdgeElement.getCost()) continue;
            lowCostEdgeElement = el;
        }
        if (lowCostEdgeElement.getCost() == minCost) return null;
        return lowCostEdgeElement;
    }

    public static int countPath(EdgeElement pos) {
        int i = 0;
        while (pos != null) {
            i++;
            pos = pos.getParent();
        }
        return i;
    }


}