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     }