View Javadoc

1   // HighLevelOperationVisitor.java, created Jul 3, 2004 11:50:51 PM by joewhaley
2   // Copyright (C) 2004 John Whaley <jwhaley@alum.mit.edu>
3   // Licensed under the terms of the GNU LGPL; see COPYING for details.
4   package net.sf.bddbddb.ir.highlevel;
5   
6   /***
7    * HighLevelOperationVisitor
8    * 
9    * @author John Whaley
10   * @version $Id: HighLevelOperationVisitor.java,v 1.1 2004/07/06 23:36:25 cs343
11   *          Exp $
12   */
13  public interface HighLevelOperationVisitor {
14      /***
15       * @param op  the operation
16       * @return  the result
17       */
18      public abstract Object visit(Join op);
19  
20      /***
21       * @param op  the operation
22       * @return  the result
23       */
24      public abstract Object visit(Project op);
25  
26      /***
27       * @param op  the operation
28       * @return  the result
29       */
30      public abstract Object visit(Rename op);
31  
32      /***
33       * @param op  the operation
34       * @return  the result
35       */
36      public abstract Object visit(Union op);
37  
38      /***
39       * @param op  the operation
40       * @return  the result
41       */
42      public abstract Object visit(Difference op);
43  
44      /***
45       * @param op  the operation
46       * @return  the result
47       */
48      public abstract Object visit(JoinConstant op);
49  
50      /***
51       * @param op  the operation
52       * @return  the result
53       */
54      public abstract Object visit(GenConstant op);
55  
56      /***
57       * @param op  the operation
58       * @return  the result
59       */
60      public abstract Object visit(Free op);
61  
62      /***
63       * @param op  the operation
64       * @return  the result
65       */
66      public abstract Object visit(Universe op);
67  
68      /***
69       * @param op  the operation
70       * @return  the result
71       */
72      public abstract Object visit(Zero op);
73  
74      /***
75       * @param op  the operation
76       * @return  the result
77       */
78      public abstract Object visit(Invert op);
79  
80      /***
81       * @param op  the operation
82       * @return  the result
83       */
84      public abstract Object visit(Copy op);
85  
86      /***
87       * @param op  the operation
88       * @return  the result
89       */
90      public abstract Object visit(Load op);
91  
92      /***
93       * @param op  the operation
94       * @return  the result
95       */
96      public abstract Object visit(Save op);
97  }