1 /*
2 wsmo4j extension - a Choreography API and Reference Implementation
3
4 Copyright (c) 2005, University of Innsbruck, Austria
5
6 This library is free software; you can redistribute it and/or modify it under
7 the terms of the GNU Lesser General Public License as published by the Free
8 Software Foundation; either version 2.1 of the License, or (at your option)
9 any later version.
10 This library is distributed in the hope that it will be useful, but WITHOUT
11 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
13 details.
14 You should have received a copy of the GNU Lesser General Public License along
15 with this library; if not, write to the Free Software Foundation, Inc.,
16 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */
18
19 package org.wsmo.service.rule;
20
21 import org.wsmo.service.choreography.rule.*;
22 import org.wsmo.service.orchestration.rule.*;
23
24 /**
25 * Visitor for Choreography Rules.
26 *
27 * <pre>
28 * Created on Jul 26, 2005
29 * Committed by $Author: haselwanter $
30 * $Source$
31 * </pre>
32 *
33 * @author James Scicluna
34 * @author Thomas Haselwanter
35 * @author Holger Lausen
36 *
37 * @version $Revision: 1860 $ $Date: 2006-11-03 15:43:59 +0200 (Fri, 03 Nov 2006) $
38 */
39 public interface Visitor {
40
41 /**
42 * Visitor for if-then rules.
43 *
44 * @param rule
45 * IfThen rule object to be visited.
46 */
47 public void visitChoreographyIfThen(ChoreographyIfThen rule);
48
49 /**
50 * Visitor for forAll rules.
51 *
52 * @param rule
53 * ForAll rule object to be visited.
54 */
55 public void visitChoreographyForAll(ChoreographyForAll rule);
56
57 /**
58 * Visitor for choose rules.
59 *
60 * @param rule
61 * Choose rule object to be visited.
62 */
63 public void visitChoreographyChoose(ChoreographyChoose rule);
64
65 /**
66 * Visitor for if-then rules.
67 *
68 * @param rule
69 * IfThen rule object to be visited.
70 */
71 public void visitOrchestrationIfThen(OrchestrationIfThen rule);
72
73 /**
74 * Visitor for forAll rules.
75 *
76 * @param rule
77 * ForAll rule object to be visited.
78 */
79 public void visitOrchestrationForAll(OrchestrationForAll rule);
80
81 /**
82 * Visitor for choose rules.
83 *
84 * @param rule
85 * Choose rule object to be visited.
86 */
87 public void visitOrchestrationChoose(OrchestrationChoose rule);
88
89 /**
90 * Visitor for add(newFact) update rules.
91 *
92 * @param rule
93 * Add update rule object to be visited.
94 */
95 public void visitAdd(Add rule);
96
97 /**
98 * Visitor for delete(oldFact) update rules.
99 *
100 * @param rule
101 * Delete update rule object to be visited.
102 */
103 public void visitDelete(Delete rule);
104
105 /**
106 * Visitor for update(newFact)/update(newFact,oldFact) update rules.
107 *
108 * @param rule
109 * Update rule object to be visited.
110 */
111 public void visitUpdate(Update rule);
112
113 /**
114 * Visitor for rule_1 | rule_2 |....| rule_n
115 *
116 * @param rules PipedRules to be visited
117 */
118 public void visitChoreographyPipedRules(ChoreographyPipedRules rules);
119
120 /**
121 * Visitor for rule_1 | rule_2 |....| rule_n
122 *
123 * @param rules PipedRules to be visited
124 */
125 public void visitOrchestrationPipedRules(OrchestrationPipedRules rules);
126
127 /**
128 * Visitor for perform rule
129 *
130 * @param rule Perform rule to be visited
131 */
132 public void visitOrchestrationAchieveGoal(OrchestrationAchieveGoal rule);
133
134 /**
135 * Visitor for perform rule
136 *
137 * @param rule Perform rule to be visited
138 */
139 public void visitOrchestrationInvokeService(OrchestrationInvokeService rule);
140
141 /**
142 * Visitor for perform rule
143 *
144 * @param rule Perform rule to be visited
145 */
146 public void visitOrchestrationApplyMediation(OrchestrationApplyMediation rule);
147
148 /**
149 * Visitor for receive rule
150 *
151 * @param rule receive rule to be visited
152 */
153 public void visitReceive(Receive rule);
154
155 /**
156 * Visitor for send rule
157 *
158 * @param rule send rule to be visited
159 */
160 public void visitSend(Send rule);
161
162 }