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.omwg.ontology.Variable;
22 import org.wsmo.service.choreography.rule.ChoreographyTransitionRule;
23 import java.util.Set;
24
25 /**
26 * A quantified rule is a sub-class of Transition Rule such did it defines
27 * quantified variables. Such rules take the form of "forall" and "choose"
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 ChoreographyQuantifiedRule extends ChoreographyTransitionRule {
42
43 /**
44 * Returns the set of Variable objects which are quantified by the Rule
45 *
46 * @return Set of Variable objects
47 */
48 public Set<Variable> listVariables();
49
50 /**
51 * Adds a quantified variable object
52 *
53 * @param var
54 * Variable object
55 */
56 public void addVariable(Variable var);
57
58 /**
59 * Adds a quantified variable object
60 *
61 * @param variables
62 * Variable object
63 */
64 public void addVariables(Set<Variable> variables);
65
66 /**
67 * Removes a quantified variable object from the rule
68 *
69 * @param var
70 * Variable object to be removed
71 */
72 public void removeVariable(Variable var);
73
74 }