// Path: src/main/java/octopus/api/structures/OctopusNode.java
// public abstract class OctopusNode implements Vertex
// {
// 
// 	public OctopusNode(Vertex vertex)
// 	{
// 		if (vertex == null)
// 		{
// 			throw new IllegalArgumentException("vertex must not be null.");
// 		}
// 	}
// 
// 	public OctopusNode(Vertex vertex, String nodeType)
// 	{
// 		this(vertex);
// 
// 		if (!vertex.value(OctopusNodeProperties.TYPE).equals(nodeType))
// 		{
// 			throw new IllegalArgumentException("Invalid node. Expected a node of type " + nodeType + " was " + vertex
// 					.value(OctopusNodeProperties.TYPE));
// 		}
// 	}
// 
// 
// }


import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.tinkerpop.gremlin.structure.Direction;
import org.apache.tinkerpop.gremlin.structure.Edge;
import org.apache.tinkerpop.gremlin.structure.Graph;
import org.apache.tinkerpop.gremlin.structure.Vertex;
import octopus.api.structures.OctopusNode;
package octopus.api;




public class GraphOperations
{

	/**
	 * Add an edge from the node src to the node dst if it does
	 * not already exist.
	 *
	 * @param src the source of the edge
	 * @param dst the destination of the edge
	 */
// Path: src/main/java/octopus/api/structures/OctopusNode.java
// public abstract class OctopusNode implements Vertex
// {
// 
// 	public OctopusNode(Vertex vertex)
// 	{
// 		if (vertex == null)
// 		{
// 			throw new IllegalArgumentException("vertex must not be null.");
// 		}
// 	}
// 
// 	public OctopusNode(Vertex vertex, String nodeType)
// 	{
// 		this(vertex);
// 
// 		if (!vertex.value(OctopusNodeProperties.TYPE).equals(nodeType))
// 		{
// 			throw new IllegalArgumentException("Invalid node. Expected a node of type " + nodeType + " was " + vertex
// 					.value(OctopusNodeProperties.TYPE));
// 		}
// 	}
// 
// 
// }


// Path: src/main/java/octopus/api/GraphOperations.java
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.tinkerpop.gremlin.structure.Direction;
import org.apache.tinkerpop.gremlin.structure.Edge;
import org.apache.tinkerpop.gremlin.structure.Graph;
import org.apache.tinkerpop.gremlin.structure.Vertex;
import octopus.api.structures.OctopusNode;

package octopus.api;




public class GraphOperations
{

	/**
	 * Add an edge from the node src to the node dst if it does
	 * not already exist.
	 *
	 * @param src the source of the edge
	 * @param dst the destination of the edge
	 */
	public static void addEdge(Graph graph, OctopusNode src, OctopusNode dst, String edgeType)