package graphics.graph;

import java.util.Vector;

public class EdgesBean {
  private static EdgesBean eb = new EdgesBean();
  private Nodes nodes = GraphFactory.getNodes();

  private EdgesBean() {
  }

  public static EdgesBean getEdgesBean() {
    return eb;
  }

  private Vector edgeVector = new Vector();

  public void addEdge(Edge e) {

    if (containsEdge(e))
      return;
    System.out.println("adding edge:" + e);
    edgeVector.addElement(e);
  }

  public boolean containsEdge(Edge e) {
    if (e == null) return true;
    for (int i = 0; i < edgeVector.size(); i++) {
      Edge e1 = (Edge) edgeVector.elementAt(i);
      if (e1.equals(e)) return true;
    }
    return false;
  }

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

  public void addEdge(String nodeName1, String nodeName2) {
    addEdge(nodeName1, nodeName2, 40);
  }

  void addEdge(String from, String to, int len) {
    Edge e = new Edge();
    e.setFrom(nodes.findNode(from));
    e.setTo(nodes.findNode(to));
    e.setLen(len);
    addEdge(e);
  }

  public Edge getEdge(int i) {
    return (Edge) edgeVector.elementAt(i);
  }
}