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 }