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.signature; 20 21 import java.util.Set; 22 23 import org.omwg.ontology.Ontology; 24 import org.wsmo.common.Entity; 25 import org.wsmo.common.IRI; 26 import org.wsmo.mediator.Mediator; 27 import org.wsmo.mediator.OOMediator; 28 29 /** 30 * StateSignature defines the containers for the modes and also implements 31 * methods to allow the modification of imported ontologies which define the 32 * state of the machine. 33 * 34 * <pre> 35 * Created on Jul 26, 2005 36 * Committed by $Author: vassil_momtchev $ 37 * $Source$ 38 * </pre> 39 * 40 * @author James Scicluna 41 * @author Thomas Haselwanter 42 * @author Holger Lausen 43 * 44 * @version $Revision: 1849 $ $Date: 2006-10-24 17:56:41 +0300 (Tue, 24 Oct 2006) $ 45 */ 46 public interface StateSignature extends Entity, Iterable<Mode> { 47 48 /** 49 * Lists the In Modes 50 * 51 * @return Set of concept references and groundings for the In Mode 52 */ 53 public Set<In> listInModes(); 54 55 /** 56 * Lists the Out Modes 57 * 58 * @return Set of concept references and groundings for the Out Mode 59 */ 60 public Set<Out> listOutModes(); 61 62 /** 63 * Lists the Shared Modes 64 * 65 * @return Set of concept references and groundings (if any) for the Shared 66 * Mode 67 */ 68 public Set<Shared> listSharedModes(); 69 70 /** 71 * Lists the Static Mode 72 * 73 * @return Set of concept references for the Static Mode 74 */ 75 public Set<Static> listStaticModes(); 76 77 /** 78 * Lists the Controlled Mode 79 * 80 * @return Set of concept references for the Controlled Mode 81 */ 82 public Set<Controlled> listControlledModes(); 83 84 /** 85 * Adds an ontology to this element's imported ontologies list 86 * 87 * @param ontology 88 * The ontology to be imported. 89 * @see #removeOntology(Ontology ontology) 90 * @see #removeOntology(IRI iri) 91 */ 92 public void addOntology(Ontology ontology); 93 94 /** 95 * Removes an ontology from the list of ontolgies which this element 96 * imports. 97 * 98 * @param iri 99 * The ID of the ontology to be removed from this element's 100 * imported ontologies list. 101 */ 102 public void removeOntology(IRI iri); 103 104 /** 105 * Removes an ontology from the list of ontolgies which this element 106 * imports. 107 * 108 * @param ontology 109 * The ontology to be removed from this element's imported 110 * ontologies list. 111 */ 112 public void removeOntology(Ontology ontology); 113 114 /** 115 * Returns a list of ontologies which this element imports. 116 * 117 * @return : The list of ontologies that this element imports. 118 * @see org.omwg.ontology.Ontology 119 */ 120 public Set<Ontology> listOntologies(); 121 122 /** 123 * Adds a reference to a new oo-mediator to this element's used mediators list. 124 * @param mediator the used mediator reference 125 * @see #removeMediator(Mediator mediator) 126 */ 127 void addMediator(OOMediator mediator); 128 129 /** 130 * Removes a reference to a mediator from this element's used mediator list. 131 * @param mediator The mediator to be removed from this element's list of used mediators. 132 */ 133 void removeMediator(OOMediator mediator); 134 135 /** 136 * Removes a reference to a oo-mediator from this element's used mediator list. 137 * @param iri The ID of the mediator to be removed from this element's list of used mediators. 138 */ 139 void removeMediator(IRI iri); 140 141 /** 142 * Returns the list of used mediators. 143 * @return : The list of used mediators. 144 * @see org.wsmo.mediator.Mediator 145 */ 146 Set listMediators(); 147 148 /** 149 * Adds a particular mode to the signature 150 * 151 * @param mode 152 */ 153 public void addMode(Mode mode); 154 155 /** 156 * Removes a particular mode from the state signature 157 * 158 * @param mode 159 * The Mode object to be removed 160 */ 161 public void removeMode(Mode mode); 162 }