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.choreography.rule; 20 21 import org.wsmo.service.rule.*; 22 23 import java.util.Set; 24 25 /** 26 * Defines the simplest type of transition rule which takes the form of "if 27 * Condition then Rule". 28 * 29 * <pre> 30 * Created on Jul 26, 2005 31 * Committed by $Author: vassil_momtchev $ 32 * $Source$ 33 * </pre> 34 * 35 * @author James Scicluna 36 * @author Thomas Haselwanter 37 * @author Holger Lausen 38 * 39 * @version $Revision: 1844 $ $Date: 2006-10-24 17:11:48 +0300 (Tue, 24 Oct 2006) $ 40 */ 41 public interface ChoreographyTransitionRule extends ChoreographyRule { 42 43 /** 44 * Returns the Logical Expression which defines the condition of the rule. 45 * 46 * @return Logical Expression defining the condition of the rule 47 */ 48 public Condition getCondition(); 49 50 /** 51 * Sets the Conditon of the rule. 52 * 53 * @param condition 54 * A Condition object defining the condition of the rule 55 */ 56 public void setCondition(Condition condition); 57 58 /** 59 * Returns the list of Rule objects nested inside the transition rule 60 * 61 * @return Set of Rule objects 62 */ 63 public Set<ChoreographyRule> listNestedRules(); 64 65 66 /** 67 * Sets the inner rules of the rule 68 * 69 * @param rules A set of Rule objects to be set 70 * as the inner rules 71 */ 72 public void setRules(Set<ChoreographyRule> rules); 73 74 /** 75 * Removes all the nested rules 76 * 77 */ 78 public void clearNestedRules(); 79 80 /** 81 * Adds a nested Rule object 82 * 83 * @param rule 84 * Adds a nested Rule object 85 */ 86 public void addRule(ChoreographyRule rule); 87 88 /** 89 * Adds a set of rules 90 * 91 * @param rules 92 * The set of Rule objects to be added 93 */ 94 public void addRules(Set<ChoreographyRule> rules); 95 96 /** 97 * Removes a nested rule 98 * 99 * @param rule 100 * Rule object to be removed 101 */ 102 public void removeRule(ChoreographyRule rule); 103 104 }