1 salcianu 1.1 // RoleInference.java, created Wed Apr 16 11:13:48 2003 by salcianu
 2 salcianu 1.1 // Copyright (C) 2003 Alexandru Salcianu <salcianu@MIT.EDU>
 3 salcianu 1.1 // Licensed under the terms of the GNU GPL; see COPYING for details.
 4 salcianu 1.1 package harpoon.Main;
 5 salcianu 1.1 
 6 salcianu 1.1 import harpoon.Analysis.Quads.QuadClassHierarchy;
 7 salcianu 1.1 
 8 salcianu 1.1 import harpoon.Util.Options.Option;
 9 salcianu 1.1 
10 salcianu 1.1 import java.util.List;
11 salcianu 1.1 import java.util.LinkedList;
12 salcianu 1.1 
13 salcianu 1.1 /**
14 salcianu 1.1  * <code>RoleInference</code>
15 salcianu 1.1  * 
16 salcianu 1.1  * @author  Alexandru Salcianu <salcianu@MIT.EDU>
17 salcianu 1.2  * @version $Id: RoleInference.java,v 1.2 2003/04/22 00:09:57 salcianu Exp $
18 salcianu 1.1  */
19 salcianu 1.1 public class RoleInference extends CompilerStageEZ {
20 salcianu 1.1     
21 salcianu 1.1     public RoleInference() { super("role-inference"); }
22 salcianu 1.1 
23 salcianu 1.1     public List/*<Option>*/ getOptions() {
24 salcianu 1.1         List/*<Option>*/ opts = new LinkedList/*<Option>*/();
25 salcianu 1.1         opts.add(new Option("e", "Role Inference") {
26 salcianu 1.1             public void action() { ROLE_INFER = true; }
27 salcianu 1.1         });
28 salcianu 1.1         return opts;
29 salcianu 1.1     }
30 salcianu 1.1     
31 salcianu 1.2     public boolean enabled() { return ROLE_INFER; }
32 salcianu 1.1     private static boolean ROLE_INFER = false;
33 salcianu 1.1     
34 salcianu 1.1     protected void real_action() {
35 salcianu 1.1         hcf = harpoon.IR.Quads.QuadNoSSA.codeFactory(hcf);
36 salcianu 1.1         hcf = (new harpoon.Analysis.RoleInference.RoleInference
37 salcianu 1.1                (hcf, linker)).codeFactory();
38 salcianu 1.1         classHierarchy = new QuadClassHierarchy(linker, roots, hcf);
39 salcianu 1.1     }
40 salcianu 1.1     
41 salcianu 1.1 }