1 /*
2 wsmo4j - a WSMO API and Reference Implementation
3 Copyright (c) 2004-2005, OntoText Lab. / SIRMA
4 This library is free software; you can redistribute it and/or modify it under
5 the terms of the GNU Lesser General Public License as published by the Free
6 Software Foundation; either version 2.1 of the License, or (at your option)
7 any later version.
8 This library is distributed in the hope that it will be useful, but WITHOUT
9 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
10 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
11 details.
12 You should have received a copy of the GNU Lesser General Public License along
13 with this library; if not, write to the Free Software Foundation, Inc.,
14 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
15 */
16
17 /**
18 * <p>Title: WSMO4J</p>
19 * <p>Description: WSMO API and a Reference Implementation</p>
20 * <p>Copyright: Copyright (c) 2004-2005</p>
21 * <p>Company: OntoText Lab. / SIRMA </p>
22 */
23
24 package org.wsmo.common;
25
26
27 import java.util.*;
28
29 import org.wsmo.common.exception.*;
30 import org.omwg.ontology.*;
31
32 /**
33 * Base class for all WSMO entities.
34 *
35 * @author not attributable
36 * @version $Revision: 1946 $ $Date: 2007-04-02 15:13:28 +0300 (Mon, 02 Apr 2007) $
37 */
38 public interface Entity {
39 /**
40 * Returns the list of values associated with the specified key.
41 * @param key The key (IRI) of interest.
42 * @return A list of values associated with the specified key.
43 * @throws org.wsmo.common.exception.SynchronisationException
44 * @see NFP
45 */
46 Set <Object> listNFPValues(IRI key)
47 throws SynchronisationException;
48
49 /**
50 * Returns all the NFP with their values as java.util.Map.
51 * The Map entries are (key, set-of-values-for-that-key)
52 * @return A Map holding the NFPs and values
53 * @throws org.wsmo.common.exception.SynchronisationException
54 * @see NFP
55 */
56
57 Map <IRI, Set <Object>> listNFPValues()
58 throws SynchronisationException;
59
60 /**
61 * Adds a value to the list of values associated with this key.
62 * @param key The key of interest.
63 * @param value Identifier or DataValue to be added to the list of values associated with this key.
64 * @throws org.wsmo.common.exception.SynchronisationException
65 * @throws org.wsmo.common.exception.InvalidModelException
66 * @see NFP
67 */
68
69 void addNFPValue(IRI key, Identifier value)
70 throws SynchronisationException, InvalidModelException;
71
72 /**
73 * Adds a value to the list of values associated with this key.
74 * @param key The key of interest.
75 * @param value Identifier or DataValue to be added to the list of values associated with this key.
76 * @throws org.wsmo.common.exception.SynchronisationException
77 * @throws org.wsmo.common.exception.InvalidModelException
78 * @see NFP
79 */
80
81 void addNFPValue(IRI key, Value value)
82 throws SynchronisationException, InvalidModelException;
83
84 /**
85 * Removes a value from the list of values associated with a specific key.
86 * @param key The key of interest.
87 * @param value Identifier or DataValue to be removed from the list of values associated with the specified key.
88 * @throws org.wsmo.common.exception.SynchronisationException
89 * @throws org.wsmo.common.exception.InvalidModelException
90 * @see NFP
91 */
92 void removeNFPValue(IRI key, Identifier value)
93 throws SynchronisationException, InvalidModelException;
94
95 /**
96 * Removes a value from the list of values associated with a specific key.
97 * @param key The key of interest.
98 * @param value Identifier or DataValue to be removed from the list of values associated with the specified key.
99 * @throws org.wsmo.common.exception.SynchronisationException
100 * @throws org.wsmo.common.exception.InvalidModelException
101 * @see NFP
102 */
103 void removeNFPValue(IRI key, Value value)
104 throws SynchronisationException, InvalidModelException;
105
106 /**
107 * Removes a NFP (e.g. all key/value pairs) associated with a specific key.
108 * @param key The key of interest.
109 * @throws org.wsmo.common.exception.SynchronisationException
110 * @throws org.wsmo.common.exception.InvalidModelException
111 * @see NFP
112 */
113 void removeNFP(IRI key)
114 throws SynchronisationException, InvalidModelException;
115
116 /**
117 * Returns the ID of this entity.
118 * @return The ID of this entity.
119 */
120 Identifier getIdentifier();
121
122 // DO NOT EDIT below this line
123
124 /**
125 * @supplierCardinality 1
126 * @supplierRole identifiedBy
127 * @directed*/
128 /*# Identifier lnkIdentifier; */
129 }
130 /*
131 * $Log$
132 * Revision 1.12 2007/04/02 12:13:14 morcen
133 * Generics support added to wsmo-api, wsmo4j and wsmo-test
134 *
135 * Revision 1.11 2005/09/27 13:10:24 marin_dimitrov
136 * javadoc
137 *
138 * Revision 1.10 2005/09/16 12:40:39 marin_dimitrov
139 * 1. Entity::addNfpValue(IRI, Object) split into Entity::addNfpValue(IRI, Identifier) and Entity::addNfpValue(IRI, Value)
140 *
141 * 2. same for removeNFP
142 *
143 * Revision 1.9 2005/08/31 12:28:37 vassil_momtchev
144 * addNFPValue and removeNFPValue changed back to accept Object. The Value type limits all kind of identifiers (IRI, AnonymousID)
145 *
146 * Revision 1.8 2005/08/31 09:16:43 vassil_momtchev
147 * use Type and Value instead of Object where appropriate bug SF[1276677]
148 *
149 * Revision 1.7 2005/08/19 08:57:49 marin_dimitrov
150 * added removeNFP(key)
151 *
152 * Revision 1.6 2005/06/01 10:30:48 marin_dimitrov
153 * v0.4.0
154 *
155 * Revision 1.3 2005/05/12 13:29:15 marin
156 * javadoc, header, footer, etc
157 *
158 */