KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > edu > umd > cs > findbugs > graph > GraphToolkit


1 /*
2  * Generic graph library
3  * Copyright (C) 2000,2003,2004 University of Maryland
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  */

19
20 package edu.umd.cs.findbugs.graph;
21
22 /**
23  * An interface for creating Graph objects,
24  * and for copying auxiliary information in vertices and edges.
25  */

26 public interface GraphToolkit
27         <
28         GraphType extends Graph<EdgeType, VertexType>,
29         EdgeType extends GraphEdge<EdgeType, VertexType>,
30         VertexType extends GraphVertex<VertexType>
31         > {
32
33     /**
34      * Create a new empty graph (no vertices or edges).
35      *
36      * @return the new graph
37      */

38     public GraphType createGraph();
39
40     /**
41      * Make a copy of given vertex.
42      *
43      * @param original the vertex to copy
44      * @return an exact duplicate of the vertex
45      */

46     public VertexType duplicateVertex(VertexType original);
47
48     /**
49      * Copy auxiliary information from one edge to another.
50      *
51      * @param source the source edge
52      * @param dest the destination edge
53      */

54     public void copyEdge(EdgeType source, EdgeType dest);
55
56 }
57
58 // vim:ts=4
59
Popular Tags