View Javadoc

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  }