001: /*
002: * $Id: BPELElementVisitor.java,v 1.11 2004/12/09 12:34:29 kowap Exp $
003: *
004: * Copyright (c) 2004 Patric Fornasier, Pawel Kowalski
005: * Berne University of Applied Sciences
006: * School of Engineering and Information Technology
007: * All rights reserved.
008: */
009: package bexee.model;
010:
011: import bexee.model.activity.Activity;
012: import bexee.model.activity.Assign;
013: import bexee.model.activity.Compensate;
014: import bexee.model.activity.Empty;
015: import bexee.model.activity.Flow;
016: import bexee.model.activity.Invoke;
017: import bexee.model.activity.Receive;
018: import bexee.model.activity.Reply;
019: import bexee.model.activity.Scope;
020: import bexee.model.activity.Sequence;
021: import bexee.model.activity.Terminate;
022: import bexee.model.activity.Throw;
023: import bexee.model.elements.Copy;
024: import bexee.model.elements.Correlation;
025: import bexee.model.elements.CorrelationPattern;
026: import bexee.model.elements.Link;
027: import bexee.model.elements.PartnerLink;
028: import bexee.model.elements.PartnerLinks;
029: import bexee.model.elements.Variable;
030: import bexee.model.elements.Variables;
031: import bexee.model.process.Process;
032:
033: /**
034: * This is a <code>Visitor</code> interface for BPEL process traversal. Every
035: * xml element of the BPEL description is a <code>BPELElement</code> instance
036: * and can therefore be visited with classes implementing this interface.
037: *
038: * @version $Revision: 1.11 $, $Date: 2004/12/09 12:34:29 $
039: * @author Patric Fornasier
040: * @author Pawel Kowalski
041: */
042: public interface BPELElementVisitor {
043:
044: //**************************************************/
045: // visit process
046: //**************************************************/
047:
048: /**
049: * Visit a <code>Process</code> <code>BPELElement</code>.
050: *
051: * @param process
052: */
053: void visit(Process process);
054:
055: //**************************************************/
056: // visit activities
057: //**************************************************/
058:
059: /**
060: * Visit an <code>Assign</code> <code>BPELElement</code>.
061: *
062: * @param sssign
063: */
064: void visit(Assign sssign);
065:
066: /**
067: * Visit a <code>Compensate</code> <code>BPELElement</code>.
068: *
069: * @param compensate
070: */
071: void visit(Compensate compensate);
072:
073: /**
074: * Visit an <code>Empty</code> <code>BPELElement</code>.
075: *
076: * @param empty
077: */
078: void visit(Empty empty);
079:
080: /**
081: * Visit a <code>Flow</code> <code>BPELElement</code>.
082: *
083: * @param flow
084: */
085: void visit(Flow flow);
086:
087: /**
088: * Visit an <code>Invoke</code> <code>BPELElement</code>.
089: *
090: * @param invoke
091: */
092: void visit(Invoke invoke);
093:
094: /**
095: * Visit a <code>Receive</code> <code>BPELElement</code>.
096: *
097: * @param Receive
098: */
099: 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: }
|