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.omwg.ontology;
27  
28  
29  import java.util.*;
30  
31  import org.wsmo.common.exception.*;
32  
33  
34  /**
35   * Defines WSMO parameter of a relation.
36   * 
37   * @author not attributable
38   * @see Relation
39   * @author not attributable
40   * @version $Revision: 1946 $Date:  
41   */
42  public interface Parameter {
43  
44      /**
45       * Returns the type of this parameter.
46       * @return true (constraining) / false (inferring)
47       */
48      boolean isConstraining();
49  
50      /**
51       * Sets the type of this parameter.
52       * @param constraining true (constraining) / false (inferring)
53       */
54      void setConstraining(boolean constraining);
55  
56      /**
57       * Returns the {@link Relation} to which this parameter is assigned.
58       * @return
59       */
60      Relation getRelation();
61  
62      /**
63       * Adds a new {@link Type} as range for this parameter.
64       * @param type  the Type to be added
65       * @throws InvalidModelException
66       */
67      void addType(Type type) throws InvalidModelException;
68  
69      /**
70       * Removes a {@link Type} for this parameter.
71       * @param type  the Type to be removed
72       * @throws InvalidModelException
73       */
74      void removeType(Type type);
75  
76      /**
77       * Returns the list of allowed {@link Type} for the current parameter.
78       * @semantics result is either a Concept or a WsmlDatatype
79       * @return Set of Type objects
80       */
81      Set <Type> listTypes();
82  
83      /**
84       * @supplierCardinality 1
85       * @directed
86       * @supplierRole has-type
87       */
88      /*# Concept lnkConcept; */
89  
90      /**
91       * @supplierCardinality 1
92       * @supplierRole has-datatype
93       * @directed
94       */
95      /*# WsmlDataType lnkWsmlDataType; */
96  }
97  
98  /*
99   * $Log$
100  * Revision 1.17  2007/04/02 12:13:14  morcen
101  * Generics support added to wsmo-api, wsmo4j and wsmo-test
102  *
103  * Revision 1.16  2006/02/13 22:49:23  nathaliest
104  * - changed concept.createAttribute() and Parameter.addType to throw InvalidModelException.
105  * - small change at check AnonIds in ConceptImpl
106  *
107  * Revision 1.15  2005/09/26 08:36:20  vassil_momtchev
108  * javadoc, header and footer added
109  *
110 */