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