// 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.event; import graphtea.library.BaseEdge; import graphtea.library.BaseGraph; import graphtea.library.BaseVertex; /** * Happens when a vertex's color changes or a new vertex * is added to the graph or ... * * @author Omid Aladini */ //I know, I know, some might say, EdgeType is not needed here. //It's just for future vertex events dependent on edge type. public class VertexEvent<VertexType extends BaseVertex, EdgeType extends BaseEdge<VertexType>> implements Event { public final VertexType vertex; public final BaseGraph<VertexType, EdgeType> graph; public final EventType eventType; public enum EventType { COLOR_CHANGE, NEW_VERTEX, MARK } /** * Constructs an event that means an event is occured on a specified vertex. * * @param vertex The vertex which the event occurs on it. * @param et Type of the event occured on the first parameter <code>vertex</code>; * @throws NullPointerException if <code>vertex</code> is null. */ public VertexEvent(BaseGraph<VertexType, EdgeType> graph, VertexType vertex, EventType et) { if (vertex == null || et == null || graph == null) throw new NullPointerException("Null argument supplied."); this.vertex = vertex; eventType = et; this.graph = graph; } /** * Constructs an event that means a new vertex is added. * * @param vertex The vertex which the event occurs on it. * @throws NullPointerException if <code>vertex</code> is null. */ public VertexEvent(BaseGraph<VertexType, EdgeType> graph, VertexType vertex) { this(graph, vertex, EventType.NEW_VERTEX); } public String getID() { return "VertexEvent"; } public String getDescription() { return "VertexEvent occurred."; } private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }