/* Graph - Decompiled by JODE
 * Visit http://jode.sourceforge.net/
 */
package salvo.jesus.graph;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.Vector;

import salvo.jesus.graph.algorithm.GraphTraversal;

public interface Graph extends Serializable
{
    public int getVerticesCount();
    
    public void add(Vertex vertex);
    
    public void remove(Vertex vertex);
    
    public Iterator getVerticesIterator();
    
    public Vector cloneVertices();
    
    public Edge createEdge(Vertex vertex, Vertex vertex_0_);
    
    public Edge addEdge(Vertex vertex, Vertex vertex_1_);
    
    public void addEdge(Edge edge);
    
    public void removeEdge(Edge edge);
    
    public void removeEdges(Vertex vertex);
    
    public int getDegree();
    
    public int getDegree(Vertex vertex);
    
    public Set getVertices(int i);
    
    public Vector getEdges(Vertex vertex);
    
    public Vector getAdjacentVertices(Vertex vertex);
    
    public HashSet getAdjacentVertices(Vector vector);
    
    public Vector getConnectedSet();
    
    public Vector getConnectedSet(Vertex vertex);
    
    public void mergeconnectedSet(Vertex vertex, Vertex vertex_2_);
    
    public Vector traverse(Vertex vertex);
    
    public GraphTraversal getTraversal();
    
    public void setTraversal(GraphTraversal graphtraversal);
    
    public boolean isConnected(Vertex vertex, Vertex vertex_3_);
    
    public void addGraphAddVertexListener
	(GraphAddVertexListener graphaddvertexlistener);
    
    public void addGraphAddEdgeListener
	(GraphAddEdgeListener graphaddedgelistener);
    
    public void addGraphRemoveEdgeListener
	(GraphRemoveEdgeListener graphremoveedgelistener);
    
    public void addGraphRemoveVertexListener
	(GraphRemoveVertexListener graphremovevertexlistener);
    
    public void removeGraphAddVertexListener
	(GraphAddVertexListener graphaddvertexlistener);
    
    public void removeGraphAddEdgeListener
	(GraphAddEdgeListener graphaddedgelistener);
    
    public void removeGraphRemoveEdgeListener
	(GraphRemoveEdgeListener graphremoveedgelistener);
    
    public void removeGraphRemoveVertexListener
	(GraphRemoveVertexListener graphremovevertexlistener);
}
