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 }