View Javadoc

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 */