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.signature;
20  
21  import java.util.Set;
22  
23  import org.omwg.ontology.Ontology;
24  import org.wsmo.common.Entity;
25  import org.wsmo.common.IRI;
26  import org.wsmo.mediator.Mediator;
27  import org.wsmo.mediator.OOMediator;
28  
29  /**
30   * StateSignature defines the containers for the modes and also implements
31   * methods to allow the modification of imported ontologies which define the
32   * state of the machine.
33   * 
34   * <pre>
35   *      Created on Jul 26, 2005
36   *      Committed by $Author: vassil_momtchev $
37   *      $Source$
38   * </pre>
39   * 
40   * @author James Scicluna
41   * @author Thomas Haselwanter
42   * @author Holger Lausen
43   * 
44   * @version $Revision: 1849 $ $Date: 2006-10-24 17:56:41 +0300 (Tue, 24 Oct 2006) $
45   */
46  public interface StateSignature extends Entity, Iterable<Mode>  {
47      
48      /**
49       * Lists the In Modes
50       * 
51       * @return Set of concept references and groundings for the In Mode
52       */
53      public Set<In> listInModes();
54  
55      /**
56       * Lists the Out Modes
57       * 
58       * @return Set of concept references and groundings for the Out Mode
59       */
60      public Set<Out> listOutModes();
61  
62      /**
63       * Lists the Shared Modes
64       * 
65       * @return Set of concept references and groundings (if any) for the Shared
66       *         Mode
67       */
68      public Set<Shared> listSharedModes();
69  
70      /**
71       * Lists the Static Mode
72       * 
73       * @return Set of concept references for the Static Mode
74       */
75      public Set<Static> listStaticModes();
76  
77      /**
78       * Lists the Controlled Mode
79       * 
80       * @return Set of concept references for the Controlled Mode
81       */
82      public Set<Controlled> listControlledModes();
83  
84      /**
85       * Adds an ontology to this element's imported ontologies list
86       * 
87       * @param ontology
88       *            The ontology to be imported.
89       * @see #removeOntology(Ontology ontology)
90       * @see #removeOntology(IRI iri)
91       */
92      public void addOntology(Ontology ontology);
93  
94      /**
95       * Removes an ontology from the list of ontolgies which this element
96       * imports.
97       * 
98       * @param iri
99       *            The ID of the ontology to be removed from this element's
100      *            imported ontologies list.
101      */
102     public void removeOntology(IRI iri);
103 
104     /**
105      * Removes an ontology from the list of ontolgies which this element
106      * imports.
107      * 
108      * @param ontology
109      *            The ontology to be removed from this element's imported
110      *            ontologies list.
111      */
112     public void removeOntology(Ontology ontology);
113 
114     /**
115      * Returns a list of ontologies which this element imports.
116      * 
117      * @return : The list of ontologies that this element imports.
118      * @see org.omwg.ontology.Ontology
119      */
120     public Set<Ontology> listOntologies();
121 
122     /**
123      * Adds a reference to a new oo-mediator to this element's used mediators list.
124      * @param mediator the used mediator reference
125      * @see #removeMediator(Mediator mediator)
126      */
127     void addMediator(OOMediator mediator);
128 
129     /**
130      * Removes a reference to a mediator from this element's used mediator list.
131      * @param mediator The mediator to be removed from this element's list of used mediators.
132      */
133     void removeMediator(OOMediator mediator);
134 
135     /**
136      * Removes a reference to a oo-mediator from this element's used mediator list.
137      * @param iri The ID of the mediator to be removed from this element's list of used mediators.
138      */
139     void removeMediator(IRI iri);
140 
141     /**
142      * Returns the list of used mediators.
143      * @return : The list of used mediators.
144      * @see org.wsmo.mediator.Mediator
145      */
146     Set listMediators();
147 
148     /**
149      * Adds a particular mode to the signature
150      * 
151      * @param mode
152      */
153     public void addMode(Mode mode);
154 
155     /**
156      * Removes a particular mode from the state signature
157      * 
158      * @param mode
159      *            The Mode object to be removed
160      */
161     public void removeMode(Mode mode);
162 }