Coverage Report - nextgrid.api.env.ProcessEnvironment
 
Classes in this File Line Coverage Branch Coverage Complexity
ProcessEnvironment
N/A
N/A
0
 
 1  
 /*
 2  
  Copyright (C) 2007 Grid Systems, S.A.
 3  
 
 4  
  This library is free software; you can redistribute it and/or
 5  
  modify it under the terms of the GNU Lesser General Public
 6  
  License as published by the Free Software Foundation; either
 7  
  version 2.1 of the License, or (at your option) any later version.
 8  
 
 9  
  This library is distributed in the hope that it will be useful,
 10  
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 11  
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 12  
  Lesser General Public License for more details.
 13  
 
 14  
  You should have received a copy of the GNU Lesser General Public
 15  
  License along with this library; if not, write to the Free Software
 16  
  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
 17  
 */
 18  
 package nextgrid.api.env;
 19  
 
 20  
 import java.io.Serializable;
 21  
 import java.net.URI;
 22  
 import java.util.Collection;
 23  
 import java.util.List;
 24  
 import java.util.Map;
 25  
 
 26  
 import nextgrid.api.pem.POMListener;
 27  
 
 28  
 /**
 29  
  * Provides environment context and services to the processes involved in
 30  
  * a workflow enaction.
 31  
  * <p>
 32  
  * It also provides control and monitoring operations for the enaction user.
 33  
  *
 34  
  * @author Rodrigo Ruiz
 35  
  */
 36  
 public interface ProcessEnvironment extends Serializable {
 37  
 
 38  
   // ==========================================================================
 39  
   // Discoverers management
 40  
   // ==========================================================================
 41  
 
 42  
   /**
 43  
    * Gets the discoverer instances registered in this environment.
 44  
    *
 45  
    * @return A list of discoverers
 46  
    */
 47  
   List<ProcessDiscoverer> getDiscoverers();
 48  
 
 49  
   /**
 50  
    * Gets a discoverer for the specified process id.
 51  
    * <p>
 52  
    * The selection of the appropriate instance is up to the implementation.
 53  
    *
 54  
    * @param id A process id
 55  
    * @return A discoverer
 56  
    * @throws DiscoveryException If an error occurs selecting a discoverer
 57  
    */
 58  
   ProcessDiscoverer getDiscovererFor(URI id) throws DiscoveryException;
 59  
 
 60  
   /**
 61  
    * Sets the discoverer associated to a given URI.
 62  
    *
 63  
    * @param id          A process id
 64  
    * @param discoverer  A discoverer instance
 65  
    */
 66  
   void setDiscovererFor(URI id, ProcessDiscoverer discoverer);
 67  
 
 68  
   /**
 69  
    * Sets the discoverer instance associated to all processes without
 70  
    * an explicit one.
 71  
    *
 72  
    * @param discoverer A discoverer instance
 73  
    */
 74  
   void setDefaultDiscoverer(ProcessDiscoverer discoverer);
 75  
 
 76  
   // ==========================================================================
 77  
   // Prioritisers management
 78  
   // ==========================================================================
 79  
 
 80  
   /**
 81  
    * Gets the prioritiser instances.
 82  
    *
 83  
    * @return A list of prioritisers
 84  
    */
 85  
   List<Prioritiser> getPrioritisers();
 86  
 
 87  
   /**
 88  
    * Gets a prioritiser for the specified process id.
 89  
    * <p>
 90  
    * The selection of the appropriate instance is up to the implementation.
 91  
    *
 92  
    * @param id A process id
 93  
    * @return A prioritiser
 94  
    */
 95  
   Prioritiser getPrioritiserFor(URI id);
 96  
 
 97  
   /**
 98  
    * Sets the prioritiser associated to a given URI.
 99  
    *
 100  
    * @param id           A process id
 101  
    * @param prioritiser  A prioritiser instance
 102  
    */
 103  
   void setPrioritiser(URI id, Prioritiser prioritiser);
 104  
 
 105  
   /**
 106  
    * Sets the prioritiser instance associated to all processes without
 107  
    * an explicit one.
 108  
    *
 109  
    * @param prioritiser A prioritiser instance
 110  
    */
 111  
   void setDefaultPrioritiser(Prioritiser prioritiser);
 112  
 
 113  
   // ==========================================================================
 114  
   // Selectors management
 115  
   // ==========================================================================
 116  
 
 117  
   /**
 118  
    * Gets the selector instances registered in this environment.
 119  
    *
 120  
    * @return A list of selectors
 121  
    */
 122  
   List<ProcessSelector> getSelectors();
 123  
 
 124  
   /**
 125  
    * Gets a selector for the specified process id.
 126  
    * <p>
 127  
    * The selection of the appropriate instance is up to the implementation.
 128  
    *
 129  
    * @param id A process id
 130  
    * @return A selector
 131  
    */
 132  
   ProcessSelector getSelectorFor(URI id);
 133  
 
 134  
   /**
 135  
    * Sets the selector associated to a given URI.
 136  
    *
 137  
    * @param id        A process id
 138  
    * @param selector  A selector instance
 139  
    */
 140  
   void setSelectorFor(URI id, ProcessSelector selector);
 141  
 
 142  
   /**
 143  
    * Sets the selector instance associated to all processes without
 144  
    * an explicit one.
 145  
    *
 146  
    * @param selector A selector instance
 147  
    */
 148  
   void setDefaultSelector(ProcessSelector selector);
 149  
 
 150  
   // ==========================================================================
 151  
   // Security management
 152  
   // added by Nikolaos Matskanis, IT Innovation
 153  
   // ==========================================================================
 154  
 
 155  
   /**
 156  
    * Gets the security module.
 157  
    * <p>
 158  
    * The security token service client module implementation.
 159  
    *
 160  
    * @return Security module instance
 161  
    */
 162  
   STSModule getSTSModule();
 163  
 
 164  
   /**
 165  
    * Sets the security module implementation.
 166  
    *
 167  
    * @param stsmod  A STS module instance
 168  
    */
 169  
   void setSTSModule(STSModule stsmod);
 170  
 
 171  
   // ==========================================================================
 172  
   // Listeners management
 173  
   // ==========================================================================
 174  
 
 175  
   /**
 176  
    * Adds one or more listeners to a given process.
 177  
    *
 178  
    * @param id        The id of the Process to attach these listeners to
 179  
    * @param listeners The listeners to attach
 180  
    */
 181  
   void addListenersFor(URI id, POMListener... listeners);
 182  
 
 183  
   /**
 184  
    * Gets a collection of listeners to be attached to the given Process id.
 185  
    *
 186  
    * @param id The id of the Process
 187  
    * @return A collection of listeners
 188  
    */
 189  
   Collection<POMListener> getListenersFor(URI id);
 190  
 
 191  
   /**
 192  
    * Removes one or more listeners from the attachment map.
 193  
    *
 194  
    * @param id        The id of the Process to detach these listeners from
 195  
    * @param listeners The listeners to detach
 196  
    */
 197  
   void removeListenersFrom(URI id, POMListener... listeners);
 198  
 
 199  
   /**
 200  
    * Clears all listeners registered in this environment instance.
 201  
    */
 202  
   void clearListeners();
 203  
 
 204  
   /**
 205  
    * Clears all listeners registered for a given Process in this environment
 206  
    * instance.
 207  
    *
 208  
    * @param id The id of the Process
 209  
    */
 210  
   void clearListenersFor(URI id);
 211  
 
 212  
   /**
 213  
    * Registers an arbitrary object in any collection it fits in. The interfaces
 214  
    * <tt>obj</tt> implements will determine in which collections it is set.
 215  
    * <p>
 216  
    * If the object does not implement any relevant interface, nothing should
 217  
    * be done. In particular, exceptions should never be thrown.
 218  
    *
 219  
    * @param id  The Process URI to associate the component to
 220  
    * @param obj Component
 221  
    */
 222  
   void setComponentFor(URI id, Object obj);
 223  
 
 224  
 
 225  
   // ==========================================================================
 226  
   // Attribute management
 227  
   // ==========================================================================
 228  
 
 229  
   /**
 230  
    * Gets an environment attribute value.
 231  
    *
 232  
    * @param name Attribute name
 233  
    * @return Attribute value
 234  
    */
 235  
   Serializable getAttribute(String name);
 236  
 
 237  
   /**
 238  
    * Sets an environment attribute value.
 239  
    *
 240  
    * @param name  Attribute name
 241  
    * @param value Attribute value
 242  
    */
 243  
   void setAttribute(String name, Serializable value);
 244  
 
 245  
   /**
 246  
    * Gets a map containing all attributes.
 247  
    *
 248  
    * @return A map with all attributes in this environment
 249  
    */
 250  
   Map<String, Serializable> getAttributes();
 251  
 }