// GraphTea Project: http://github.com/graphtheorysoftware/GraphTea // Copyright (C) 2012 Graph Theory Software Foundation: http://GraphTheorySoftware.com // Copyright (C) 2008 Mathematical Science Department of Sharif University of Technology // Distributed under the terms of the GNU Lesser General Public License (LGPL): http://www.gnu.org/licenses/ package graphtea.library; import graphtea.library.exceptions.InvalidVertexException; import java.util.ArrayList; import java.util.Iterator; /** * I think this is enough for a path; * * @author Omid * @param <VertexType> */ public class Path<VertexType extends BaseVertex> implements Iterable<VertexType> { private ArrayList<BaseVertex> vertices = new ArrayList<>(); public void insert(VertexType vertex) { if (vertices.contains(vertex)) throw new InvalidVertexException("Duplicate vertex in path"); vertices.add(vertex); } public void insert(VertexType vertex, int position) { if (vertices.contains(vertex)) throw new InvalidVertexException("Duplicate vertex in path"); vertices.add(position, vertex); } public Iterator<VertexType> iterator() { return (Iterator<VertexType>) vertices.iterator(); } public VertexType get(int i) { return (VertexType) vertices.get(i); } public int size() { return vertices.size(); } }