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.*;
32  import org.wsmo.common.exception.*;
33  
34  
35  /**
36   * This class represents an instance of a WSMO concept.
37   *
38   * @see Concept
39   * @author not attributable
40   * @version $Revision: 1946 $ $Date: 2007-04-02 15:13:28 +0300 (Mon, 02 Apr 2007) $
41   */
42  public interface Instance
43      extends OntologyElement, Value {
44  
45      /**
46       * Sets the concept this instance is an instance of.
47       * <i>The concept will also add this instance to the list of its instances</i>
48       * @param memberOf The concept that this instance is an instance of.
49       * @see #removeConcept(Concept memberOf)
50       * @throws org.wsmo.common.exception.SynchronisationException
51       * @throws org.wsmo.common.exception.InvalidModelException
52       * @see Concept#addInstance(Instance inst)
53       */
54      void addConcept(Concept memberOf)
55          throws SynchronisationException, InvalidModelException;
56  
57      /**
58       * Removes a concept from the set of concepts that this entity is an instance of.
59       * @param memberOf the concept (the entity is no longer an instance of it)
60       * @throws org.wsmo.common.exception.SynchronisationException
61       * @throws org.wsmo.common.exception.InvalidModelException
62       */
63      void removeConcept(Concept memberOf)
64          throws SynchronisationException, InvalidModelException;
65  
66      /**
67       * Returns a list of the concepts this instance belongs to
68       * @return The list of the concepts of this instances
69       * @throws org.wsmo.common.exception.SynchronisationException
70       * @see Concept
71       */
72      Set <Concept> listConcepts()
73          throws SynchronisationException;
74  
75      /**
76       * Adds a new attribute value to the list of values associated with the specified attribute of this instance.
77       * @param id the attribute's indentifier of interest
78       * @param value The value to be added
79       * @throws org.wsmo.common.exception.SynchronisationException
80       * @throws org.wsmo.common.exception.InvalidModelException
81       * @see Concept#createAttribute(IRI)
82       * @see #removeAttributeValue(Identifier, Value)
83       * @see #removeAttributeValues(Identifier)
84       */
85      void addAttributeValue(Identifier id, Value value )
86          throws SynchronisationException, InvalidModelException;
87  
88      /**
89       * Removes a particular value associated with an attribute within this instance.
90       * @param id The attribute's indentifier of interest
91       * @param value the attribute value to be removed
92       * @throws org.wsmo.common.exception.SynchronisationException
93       * @throws org.wsmo.common.exception.InvalidModelException
94       * @see #removeAttributeValues(Identifier id)
95       */
96      void removeAttributeValue(Identifier key, Value value )
97          throws SynchronisationException, InvalidModelException;
98  
99      /**
100      * Clears all the values associated with a particular attribute of this instance.
101      * @param id The attribute's indentifier of interest
102      * @throws org.wsmo.common.exception.SynchronisationException
103      * @throws org.wsmo.common.exception.InvalidModelException
104      * @see #removeAttributeValue(Identifier id, Object value)
105      */
106     void removeAttributeValues(Identifier id)
107         throws SynchronisationException, InvalidModelException;
108 
109     /**
110      * Returns a list of values of a specified attribute.
111      * Note that an attribute may be associated with more than one value
112      * @param key The attribute of interest.
113      * @return A set of values assigned to this attribute.
114      * @throws org.wsmo.common.exception.SynchronisationException
115      * @see #listAttributeValues()
116      */
117     Set <Value> listAttributeValues(Identifier key)
118         throws SynchronisationException;
119 
120     /**
121      * Returns all attribute values for this instance.
122      * @return A Map of [Attribute, Set of values] pairs.
123      * @throws org.wsmo.common.exception.SynchronisationException
124      * @see #listAttributeValues(Identifier id)
125      */
126     Map <Identifier, Set <Value>> listAttributeValues()
127         throws SynchronisationException;
128 
129     /**
130      * Search this concept and all super concepts for a
131      * specified attribute.
132      * @param id of the attribute
133      * @return Set with all attributes
134      * @throws SynchronisationException
135      */
136     Set <Attribute> findAttributeDefinitions(Identifier id) throws SynchronisationException;
137 
138 //DO NOT EDIT below this line
139 
140     /**
141      * @supplierCardinality 0..*
142      * @supplierRole specifies-value
143      * @directed
144      */
145     /*# Attribute lnkAttribute; */
146 }
147 
148 /*
149  * $Log$
150  * Revision 1.20  2007/04/02 12:13:14  morcen
151  * Generics support added to wsmo-api, wsmo4j and wsmo-test
152  *
153  * Revision 1.19  2006/02/10 14:29:55  vassil_momtchev
154  * instance reference attributes by Identifier; no longer handle to Attribute object used;
155  *
156  * Revision 1.18  2005/09/21 08:15:39  holgerlausen
157  * fixing java doc, removing asString()
158  *
159  * Revision 1.17  2005/06/24 12:51:06  marin_dimitrov
160  * now use Value for param/attr values (was: Object)
161  *
162  * Revision 1.16  2005/06/24 12:47:14  marin_dimitrov
163  * added common super interface of Instance and DataValue
164  *
165  * Revision 1.15  2005/06/01 10:12:38  marin_dimitrov
166  * v0.4.0
167  *
168  * Revision 1.5  2005/05/13 15:38:26  marin
169  * fixed javadoc errors
170  *
171  * Revision 1.4  2005/05/13 13:58:38  marin
172  * more @see tags
173  *
174  * Revision 1.3  2005/05/12 14:44:26  marin
175  * javadoc, header, footer, etc
176  *
177  */