View Javadoc

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  */