package me.teaisaweso.shared;

public class Edge {
	private Vertex mVertex1;
	private Vertex mVertex2;
	private VertexDirection mDir;

	/**
	 * creates an edge without direction
	 * 
	 * @param v1
	 *            the "from" vertex
	 * @param v2
	 *            the "to" vertex
	 */
	public Edge(Vertex v1, Vertex v2) {
		this(v1, v2, VertexDirection.both);
	}

	/**
	 * creates an edge
	 * 
	 * @param v1
	 *            the "from" vertex
	 * @param v2
	 *            the "to" vertex
	 * @param dir
	 *            the edge direction
	 */
	public Edge(Vertex v1, Vertex v2, VertexDirection dir) {
		mVertex1 = v1;
		mVertex2 = v2;
		mDir = dir;
	}

	/**
	 * determines if the edge exits a vertex
	 * 
	 * @param v
	 *            the vertex to test against
	 * @return true if this edge exits v, else false
	 */
	public boolean exits(Vertex v) {
		if (mDir == VertexDirection.both && (v.equals(mVertex1) || v.equals(mVertex2)))
			return true;
		else
			return v.equals((mDir == VertexDirection.fromTo) ? mVertex1 : mVertex2);
	}

	/**
	 * determines if the edge enters a vertex
	 * 
	 * @param v
	 *            the vertex to test against
	 * @return true if this edge enters v, else false
	 */
	public boolean enters(Vertex v) {
		if (mDir == VertexDirection.both && (v.equals(mVertex1) || v.equals(mVertex2)))
			return true;
		else
			return v.equals((mDir == VertexDirection.toFrom) ? mVertex1 : mVertex2);
	}

	/**
	 * gets the from vertex of this edge
	 *
	 * @return
	 */
	public Vertex getFromVertex() {
		return mVertex1;
	}

	/**
	 * gets the to vertex of this edge
	 *
	 * @return
	 */
	public Vertex getToVertex() {
		return mVertex2;
	}

}

@@ -1441,33 +1441,34 @@
 of this edge%0A%09 *
+ 
 %0A
-
 %09 * @return%0A%09 */
@@ -1568,16 +1568,17 @@
 edge%0A%09 *
+ 
 %0A%09 * @re
@@ -1610,32 +1610,32 @@
 getToVertex() %7B%0A
-
 %09%09return mVertex
@@ -1641,10 +1641,155 @@
 x2;%0A%09%7D%0A%0A
+%09/**%0A%09 * determines if an edge has a direction%0A%09 * %0A%09 * @return%0A%09 */%0A%09public boolean hasDirection() %7B%0A%09%09return mDir != VertexDirection.both;%0A%09%7D%0A%0A
 %7D%0A

add a function in edge.java to determine if an edge has direction