1 /*
2 wsmo4j - a WSMO API and Reference Implementation
3
4 Copyright (c) 2004-2005, OntoText Lab. / SIRMA
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 /**
20 * <p>Title: WSMO4J</p>
21 * <p>Description: WSMO API and a Reference Implementation</p>
22 * <p>Copyright: Copyright (c) 2004-2005</p>
23 * <p>Company: OntoText Lab. / SIRMA </p>
24 */
25
26 package org.wsmo.service;
27
28
29 import java.util.*;
30
31 import org.wsmo.common.*;
32
33
34 /**
35 * An interface representing a service description (e.g. a Goal or a WebService).
36 *
37 * @author not attributable
38 * @version $Revision: 1946 $ $Date: 2007-04-02 15:13:28 +0300 (Mon, 02 Apr 2007) $
39 * @since 0.4.0
40 */
41 public interface ServiceDescription
42 extends TopEntity {
43
44 /**
45 * Adds a new interface to the list of interfaces of this WebService/Goal.
46 * @param iface The new interface to be added to the list.
47 * @throws org.wsmo.common.exception.SynchronisationException
48 * @throws org.wsmo.common.exception.InvalidModelException
49 * @see #removeInterface(Interface iface)
50 * @see #removeInterface(Identifier id)
51 */
52 void addInterface(Interface iface);
53
54 /**
55 * Removes the specified interface from the list of iterfaces of this WebService/Goal.
56 * @param iface The interface to be removed from the list of interfacaes.
57 * @throws org.wsmo.common.exception.SynchronisationException
58 * @throws org.wsmo.common.exception.InvalidModelException
59 * @see #removeInterface(Identifier id)
60 */
61 void removeInterface(Interface iface);
62
63 /**
64 * Removes the specified interface from the list of iterfaces of this WebService/Goal.
65 * @param id The ID of the interface to be removed from the list of interfacaes.
66 * @throws org.wsmo.common.exception.SynchronisationException
67 * @throws org.wsmo.common.exception.InvalidModelException
68 * @see #removeInterface(Interface iface)
69 */
70 void removeInterface(Identifier id);
71
72 /**
73 * Lists the interfaces of this WebService/Goal.
74 * @return A set of the interfaces of this WebService/Goal
75 * @throws org.wsmo.common.exception.SynchronisationException
76 */
77 Set <Interface> listInterfaces();
78
79 /**
80 * Returns the capability of this WebService/Goal.
81 * @return The capability associated with this WebService/Goal.
82 * @see #setCapability
83 * @throws org.wsmo.common.exception.SynchronisationException
84 */
85 Capability getCapability();
86
87 /**
88 * Sets the capability of this WebService/Goal.
89 * @param cap The new capability to be associated with this WebService/Goal
90 * @see #getCapability
91 * @throws org.wsmo.common.exception.SynchronisationException
92 * @throws org.wsmo.common.exception.InvalidModelException
93 */
94 void setCapability(Capability cap);
95
96 // DO NOT EDIT below this line
97
98 /**
99 * @link aggregation
100 * @supplierCardinality 0..1
101 * @supplierQualifier has-capability
102 * @clientCardinality 0..*
103 * @directed
104 */
105 /*# Capability lnkCapability; */
106
107 /**
108 * @link aggregation
109 * @directed
110 * @supplierCardinality 0..*
111 * @supplierQualifier has-interface
112 * @clientCardinality 0..*
113 */
114 /*# Interface lnkInterface; */
115 }
116
117 /*
118 * $Log$
119 * Revision 1.2 2007/04/02 12:13:14 morcen
120 * Generics support added to wsmo-api, wsmo4j and wsmo-test
121 *
122 * Revision 1.1 2005/06/02 12:20:09 alex_simov
123 * no message
124 *
125 * Revision 1.6 2005/05/13 12:45:38 marin
126 * more @see tags
127 *
128 * Revision 1.5 2005/05/12 14:43:56 marin
129 * added @since tags
130 *
131 * Revision 1.4 2005/05/12 10:11:05 marin
132 * added javadocs, proper formatting, etc
133 *
134 */