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 }