1 pnkfelix 1.1.2.1  // GraphColorer.java, created Thu Jan 14 19:02:55 1999 by pnkfelix
 2 cananian 1.1.2.14 // Copyright (C) 1998 Felix S. Klock II <pnkfelix@mit.edu>
 3 cananian 1.1.2.6  // Licensed under the terms of the GNU GPL; see COPYING for details.
 4 pnkfelix 1.1.2.1  package harpoon.Analysis.GraphColoring;
 5 pnkfelix 1.1.2.1  
 6 pnkfelix 1.1.2.7  import java.util.List;
 7 pnkfelix 1.1.2.1  
 8 pnkfelix 1.1.2.1  /**
 9 pnkfelix 1.1.2.10  * <code>GraphColorer</code> is a class for describing a graph coloring
10 pnkfelix 1.1.2.10  * algorithm.
11 pnkfelix 1.1.2.1   * 
12 cananian 1.1.2.14  * @author  Felix S. Klock II <pnkfelix@mit.edu>
13 cananian 1.2       * @version $Id: GraphColorer.java,v 1.2 2002/02/25 20:57:17 cananian Exp $
14 pnkfelix 1.1.2.1   */
15 pnkfelix 1.1.2.1  
16 pnkfelix 1.1.2.1  public abstract class GraphColorer  {
17 pnkfelix 1.1.2.1      
18 pnkfelix 1.1.2.1      /** Creates a <code>GraphColorer</code>. */
19 pnkfelix 1.1.2.10     public GraphColorer() { }
20 pnkfelix 1.1.2.1                                 
21 pnkfelix 1.1.2.10     /** Attempts to color <code>graph</code>.
22 pnkfelix 1.1.2.13         <BR> <B>requires:</B> <OL>
23 pnkfelix 1.1.2.13              <LI> <code>colors</code> is a <code>List</code> of
24 pnkfelix 1.1.2.13                   <code>Color</code>s.
25 pnkfelix 1.1.2.13              <LI> <code>graph</code> does not have any hidden nodes.
26 pnkfelix 1.1.2.13              </OL>
27 pnkfelix 1.1.2.10         <BR> <B>modifies:</B> <code>graph</code>
28 pnkfelix 1.1.2.10         <BR> <B>effects:</B> Attempts to color <code>graph</code>
29 pnkfelix 1.1.2.10              using the set of <code>Color</code>s given in
30 pnkfelix 1.1.2.10              <code>colors</code>.  If successful, every node in
31 pnkfelix 1.1.2.10              <code>graph</code> will be present in
32 pnkfelix 1.1.2.10              <code>graph</code>'s Node -> Color mapping, with no two 
33 pnkfelix 1.1.2.10              interfering nodes sharing the same color.
34 pnkfelix 1.1.2.11         @throws UncolorableGraph A coloring cannot be found
35 pnkfelix 1.1.2.10              for <code>graph</code>.  <code>graph</code> may be left
36 pnkfelix 1.1.2.10              with some hidden nodes and an non-empty Node -> Color
37 pnkfelix 1.1.2.10              mapping, but can be returned to its original state with a
38 pnkfelix 1.1.2.10              call to <code>graph.resetGraph()</code>.
39 pnkfelix 1.1.2.10     */
40 pnkfelix 1.1.2.10     public abstract void color(ColorableGraph graph, 
41 pnkfelix 1.1.2.11                                List colors) throws UnableToColorGraph;
42 pnkfelix 1.1.2.1  
43 cananian 1.2      }