1 cananian 1.1.2.2 // CFGEdge.java, created Tue Jan 4 22:52:37 2000 by duncan 2 cananian 1.1.2.2 // Copyright (C) 1998 Duncan Bryce <duncan@lcs.mit.edu> 3 cananian 1.1.2.2 // Licensed under the terms of the GNU GPL; see COPYING for details. 4 duncan 1.1.2.1 package harpoon.IR.Properties; 5 duncan 1.1.2.1 6 duncan 1.1.2.1 import harpoon.ClassFile.HCodeElement; 7 cananian 1.6 import harpoon.Util.Collections.Graph; 8 duncan 1.1.2.1 9 duncan 1.1.2.1 /** 10 duncan 1.1.2.1 * An <code>CFGEdge</code> connects two <code>CFGraphable</code>s 11 duncan 1.1.2.1 * in a graph structure. 12 duncan 1.1.2.1 * 13 duncan 1.1.2.1 * @author Duncan Bryce <duncan@lcs.mit.edu> 14 cananian 1.6 * @version $Id: CFGEdge.java,v 1.6 2003/05/09 20:38:45 cananian Exp $ 15 duncan 1.1.2.1 * @see CFGraphable 16 duncan 1.1.2.1 */ 17 cananian 1.4 public abstract class CFGEdge<CFG extends CFGraphable<CFG,E>, 18 cananian 1.4 E extends CFGEdge<CFG,E>> 19 cananian 1.6 implements harpoon.ClassFile.HCodeEdge<CFG>, Graph.Edge<CFG,E> { 20 duncan 1.1.2.1 /** Returns the source of this <code>CFGEdge</code>. 21 duncan 1.1.2.1 * The return value is guaranteed to implement to 22 duncan 1.1.2.1 * <code>CFGraphable</code> interface. */ 23 cananian 1.5 public abstract CFG from(); 24 duncan 1.1.2.1 25 duncan 1.1.2.1 /** Returns the destination of this <code>HCodeEdge</code>. 26 duncan 1.1.2.1 * The return value is guaranteed to implement to 27 duncan 1.1.2.1 * <code>CFGraphable</code> interface. */ 28 cananian 1.5 public abstract CFG to(); 29 cananian 1.2 }