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  
27  package org.wsmo.common;
28  
29  
30  import java.util.Set;
31  
32  import org.omwg.ontology.Ontology;
33  
34  
35  /**
36   * Base class for top level WSMO entities (ontologies, mediators, goals, services + capabilities and interfaces)
37   *
38   * @author not attributable
39   * @version $Revision: 1946 $ $Date: 2007-04-02 15:13:28 +0300 (Mon, 02 Apr 2007) $
40   * @since 0.4.0
41   */
42  public interface TopEntity
43      extends Entity {
44  
45      /**
46       * returns the WSML variant used for the definition of this entity
47       * @return the name of the WSML variant (as string)
48       * @see WSML
49       * @see #setWsmlVariant(String variant)
50       */
51      String getWsmlVariant();
52  
53      /**
54       * specifies the WSML variant used for the definition of this entity
55       * @param variant the name of the WSML variant (as string)
56       * @see org.wsmo.common.WSML
57       */
58      void setWsmlVariant(String variant);
59  
60      /**
61       * retrieves all avalible namespaces (prefix/iri pairs). 
62       * Note: This does not include the default namespace
63       * @return a set of namespaces
64       * @see Namespace
65       * @see #getDefaultNamespace()
66       */
67      Set <Namespace> listNamespaces();
68  
69      /**
70       * add a namespace in the contaioner
71       * @param ns to add
72       * @see #removeNamespace(String)
73       * @see #removeNamespace(Namespace)
74       */
75      void addNamespace(Namespace ns);
76  
77      /**
78       * remove namespace from the top entity
79       * @param prexif prexif of the namespcae to be removed
80       */
81      void removeNamespace(String prefix);
82  
83      /**
84       * remove namespace from the top entity
85       * @param ns namespace to be removed
86       */
87      void removeNamespace(Namespace ns);
88  
89      /**
90       * finds a namespace by its prefix
91       * @param prefix of a namespace to look for
92       * @return a namesspace with such prefix or null if not found
93       */
94      Namespace findNamespace(String prefix);
95  
96      /**
97       * retrieve the default namespace
98       * @return default namespace or null if not set
99       * @see #setDefaultNamespace(Namespace ns)
100      * @see #setDefaultNamespace(IRI iri)
101      */
102     Namespace getDefaultNamespace();
103 
104     /**
105      * sets a default namespace for the container
106      * @param ns namespace to set as default
107      * @see #setDefaultNamespace(IRI iri)
108      */
109     void setDefaultNamespace(Namespace ns);
110 
111     /**
112      * sets a default namespace for the container
113      * @param iri IRI of namespace to set as default
114      * @see #setDefaultNamespace(Namespace ns)
115      */
116     void setDefaultNamespace(IRI iri);
117 
118     /**
119      * Adds a reference to a new mediator to this element's used mediators list.
120      * @param iri the ID of the used mediator reference
121      * @see #removeMediator(IRI mediator)
122      */
123     void addMediator(IRI mediator);
124 
125     /**
126      * Removes a reference to a mediator from this element's used mediator list.
127      * @param iri The ID of the mediator to be removed from this element's list of used mediators.
128      */
129     void removeMediator(IRI iri);
130 
131     /**
132      * Returns the list of used mediators.
133      * @return : The list of used mediators.
134      * @see org.wsmo.mediator.Mediator
135      */
136     Set <IRI> listMediators();
137 
138     /**
139      * Adds an ontology to this element's imported ontologies list
140      * @param ontology The ontology to be imported.
141      * @see #removeOntology(Ontology ontology)
142      * @see #removeOntology(IRI iri)
143      */
144     void addOntology(Ontology ontology);
145 
146     /**
147      * Removes an ontology from the list of ontolgies which this element imports.
148      * @param iri The ID of the ontology to be removed from this element's imported ontologies list.
149      */
150     void removeOntology(IRI iri);
151 
152     /**
153      * Removes an ontology from the list of ontolgies which this element imports.
154      * @param ontology The ontology to be removed from this element's imported ontologies list.
155      */
156     void removeOntology(Ontology ontology);
157 
158     /**
159      * Returns a list of ontologies which this element imports.
160      * @return : The list of ontologies that this element imports.
161      * @see org.omwg.ontology.Ontology
162      */
163     Set <Ontology> listOntologies();
164 
165 //DO NOT EDIT below this line
166 
167     /**
168      * @supplierCardinality 1
169      * @supplierRole default namespace
170      * @directed
171      */
172     /*# Namespace lnkNamespace1; */
173 
174     /**
175      * @supplierCardinality 0..*
176      * @supplierRole namespaces
177      * @directed
178      */
179     /*# Namespace lnkNamespace; */
180 }
181 
182 /*
183  * $Log$
184  * Revision 1.5  2007/04/02 12:13:14  morcen
185  * Generics support added to wsmo-api, wsmo4j and wsmo-test
186  *
187  * Revision 1.4  2006/04/05 13:21:52  vassil_momtchev
188  * usesMediator now refer mediators by  IRI instead of handle to object
189  *
190  * Revision 1.3  2005/11/22 09:23:48  holgerlausen
191  * added docu for namespace issue by jan (rfe 1348215)
192  *
193  * Revision 1.2  2005/09/21 08:15:39  holgerlausen
194  * fixing java doc, removing asString()
195  *
196  * Revision 1.1  2005/06/01 10:30:24  marin_dimitrov
197  * v0.4.0
198  *
199  * Revision 1.5  2005/05/13 12:38:36  marin
200  * added setDefaultNamespace(IRI) since the def namespace does not have a  prefix, e.g. it is not a complete Namespace object
201  *
202  * Revision 1.4  2005/05/12 14:42:57  marin
203  * added @since tags
204  *
205  * Revision 1.3  2005/05/12 13:29:16  marin
206  * javadoc, header, footer, etc
207  *
208  */