1 /*
2 wsmo4j extension - a Choreography API and Reference Implementation
3
4 Copyright (c) 2005, University of Innsbruck, Austria
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 package org.wsmo.service.rule;
20
21 import java.util.Set;
22
23 import org.omwg.logicalexpression.AttributeValueMolecule;
24 import org.omwg.logicalexpression.MembershipMolecule;
25 import org.wsmo.common.TopEntity;
26
27 /**
28 * Defines elements needed for normal updates on molecules.
29 *
30 * @author James Scicluna
31 * @author Thomas Haselwanter
32 *
33 * Created on 02-Feb-2006
34 * Committed by $Author: vassil_momtchev $
35 *
36 * $Source$,
37 * @version $Revision: 1844 $ $Date: 2006-10-24 17:11:48 +0300 (Tue, 24 Oct 2006) $
38 */
39
40 public interface MoleculeFact extends CompoundFact {
41
42 /**
43 * Returns the membership fact defined in the compound fact.
44 *
45 * @return A MembershipFact object
46 */
47 public Set<MembershipMolecule> listMembershipMolecules();
48
49 /**
50 * Returns a list of attribute value facts defined in the compound fact.
51 *
52 * @return A set of AttributeValueFact objects
53 */
54 public Set<AttributeValueMolecule> listAttributeValueMolecules();
55
56 /**
57 * Add a membership molecule to the Compound Fact.
58 *
59 * @param memberof
60 * A MembershipMolecule object defining a membership fact
61 */
62 public void addMembershipMolecule(MembershipMolecule memberMolecule);
63
64 /**
65 * Remove a membership molecule from the Compound Fact.
66 *
67 * @param memberof
68 * A MembershipMolecule object defining a membership fact
69 */
70 public void removeMembershipMolecule(MembershipMolecule memberMolecule);
71
72 /**
73 * Add attribute value molecules to the compound fact.
74 *
75 * @param attrValues
76 * AttributeValueMolecule objects defining the facts
77 * related to the attribute values
78 */
79 public void addAttributeValueMolecule(AttributeValueMolecule attrValue);
80
81 /**
82 * Remove attribute value molecules to the compound fact.
83 *
84 * @param attrValues
85 * AttributeValueMolecule objects defining the facts
86 * related to the attribute values
87 */
88 public void removeAttributeValueMolecule(AttributeValueMolecule attrValue);
89
90 /**
91 * returns this MoleculeFact as string using the namespace
92 * definitions in the topEntity given as parameter
93 * @param nsHolder TopEntity that namespace are used to abreviate
94 * full IRIs.
95 * @return String representation of this fact using
96 * sQNames to abbreviate full IRIs
97 */
98 public String toString(TopEntity nsHolder);
99 }
100
101 /*
102 * $Log$
103 * Revision 1.1 2006/10/24 14:11:48 vassil_momtchev
104 * choreography/orchestration rules refactored. different types where appropriate now supported
105 *
106 * Revision 1.3 2006/02/15 16:43:47 alex_simov
107 * toString(TopEntity) method added
108 *
109 * Revision 1.2 2006/02/10 15:30:35 vassil_momtchev
110 * isEmpty method shifted from MoleculeFact to CompoundFact; log footer added
111 *
112 */