View Javadoc

1   /*
2    * $Id: BPELElementVisitor.java,v 1.1 2004/12/15 14:18:10 patforna Exp $
3    *
4    * Copyright (c) 2004 Patric Fornasier, Pawel Kowalski
5    * Berne University of Applied Sciences
6    * School of Engineering and Information Technology
7    * All rights reserved.
8    */
9   package bexee.model;
10  
11  import bexee.model.activity.Activity;
12  import bexee.model.activity.Assign;
13  import bexee.model.activity.Compensate;
14  import bexee.model.activity.Empty;
15  import bexee.model.activity.Flow;
16  import bexee.model.activity.Invoke;
17  import bexee.model.activity.Receive;
18  import bexee.model.activity.Reply;
19  import bexee.model.activity.Scope;
20  import bexee.model.activity.Sequence;
21  import bexee.model.activity.Terminate;
22  import bexee.model.activity.Throw;
23  import bexee.model.elements.Copy;
24  import bexee.model.elements.Correlation;
25  import bexee.model.elements.CorrelationPattern;
26  import bexee.model.elements.Link;
27  import bexee.model.elements.PartnerLink;
28  import bexee.model.elements.PartnerLinks;
29  import bexee.model.elements.Variable;
30  import bexee.model.elements.Variables;
31  import bexee.model.process.Process;
32  
33  /***
34   * This is a <code>Visitor</code> interface for BPEL process traversal. Every
35   * xml element of the BPEL description is a <code>BPELElement</code> instance
36   * and can therefore be visited with classes implementing this interface.
37   * 
38   * @version $Revision: 1.1 $, $Date: 2004/12/15 14:18:10 $
39   * @author Patric Fornasier
40   * @author Pawel Kowalski
41   */
42  public interface BPELElementVisitor {
43  
44      //***************************************************/
45      // visit process
46      //***************************************************/
47  
48      /***
49       * Visit a <code>Process</code> <code>BPELElement</code>.
50       * 
51       * @param process
52       */
53      void visit(Process process);
54  
55      //***************************************************/
56      // visit activities
57      //***************************************************/
58  
59      /***
60       * Visit an <code>Assign</code> <code>BPELElement</code>.
61       * 
62       * @param sssign
63       */
64      void visit(Assign sssign);
65  
66      /***
67       * Visit a <code>Compensate</code> <code>BPELElement</code>.
68       * 
69       * @param compensate
70       */
71      void visit(Compensate compensate);
72  
73      /***
74       * Visit an <code>Empty</code> <code>BPELElement</code>.
75       * 
76       * @param empty
77       */
78      void visit(Empty empty);
79  
80      /***
81       * Visit a <code>Flow</code> <code>BPELElement</code>.
82       * 
83       * @param flow
84       */
85      void visit(Flow flow);
86  
87      /***
88       * Visit an <code>Invoke</code> <code>BPELElement</code>.
89       * 
90       * @param invoke
91       */
92      void visit(Invoke invoke);
93  
94      /***
95       * Visit a <code>Receive</code> <code>BPELElement</code>.
96       * 
97       * @param Receive
98       */
99      void visit(Receive Receive);
100 
101     /***
102      * Visit a <code>Reply</code> <code>BPELElement</code>.
103      * 
104      * @param reply
105      */
106     void visit(Reply reply);
107 
108     /***
109      * Visit a <code>Scope</code> <code>BPELElement</code>.
110      * 
111      * @param scope
112      */
113     void visit(Scope scope);
114 
115     /***
116      * Visit a <code>Sequence</code> <code>BPELElement</code>.
117      * 
118      * @param sequence
119      */
120     void visit(Sequence sequence);
121 
122     /***
123      * Visit a <code>Terminate</code> <code>BPELElement</code>.
124      * 
125      * @param terminate
126      */
127     void visit(Terminate terminate);
128 
129     /***
130      * Visit a <code>Throw</code> <code>BPELElement</code>.
131      * 
132      * @param bexeethrow
133      */
134     void visit(Throw bexeethrow);
135 
136     /***
137      * Visit an <code>Activity</code> <code>BPELElement</code>.
138      * 
139      * @param activity
140      */
141     void visit(Activity activity);
142 
143     //**************************************************/
144     // visit other elements
145     //**************************************************/
146 
147     /***
148      * Visit a <code>Link</code> <code>BPELElement</code>.
149      * 
150      * @param link
151      */
152     void visit(Link link);
153 
154     /***
155      * Visit a <code>PartnerLink</code> <code>BPELElement</code>.
156      * 
157      * @param partnerLink
158      */
159     void visit(PartnerLink partnerLink);
160 
161     /***
162      * Visit a <code>Variable</code> <code>BPELElement</code>.
163      * 
164      * @param variable
165      */
166     void visit(Variable variable);
167 
168     /***
169      * Visit a <code>Variables</code> <code>BPELElement</code>.
170      * 
171      * @param variables
172      */
173     void visit(Variables variables);
174 
175     /***
176      * Visit a <code>PartnerLinks</code> <code>BPELElement</code>.
177      * 
178      * @param partnerLinks
179      */
180     void visit(PartnerLinks partnerLinks);
181 
182     /***
183      * Visit a <code>Correlation</code> <code>BPELElement</code>.
184      * 
185      * @param correlation
186      */
187     void visit(Correlation correlation);
188 
189     /***
190      * Visit a <code>CorrelationPattern</code> <code>BPELElement</code>.
191      * 
192      * @param correlationPattern
193      */
194     void visit(CorrelationPattern correlationPattern);
195 
196     /***
197      * Visit a <code>Copy</code> <code>BPELElement</code>.
198      * 
199      * @param copy
200      */
201     void visit(Copy copy);
202 
203 }