1   /*
2    *  Copyright (c) 1998-2005, The University of Sheffield.
3    *
4    *  This file is part of GATE (see http://gate.ac.uk/), and is free
5    *  software, licenced under the GNU Library General Public License,
6    *  Version 2, June 1991 (in the distribution as file licence.html,
7    *  and also available at http://gate.ac.uk/gate/licence.html).
8    *
9    *  Valentin Tablan 11 Apr 2002
10   *
11   *  $Id: ConditionalController.java,v 1.5 2005/01/11 13:51:31 ian Exp $
12   */
13  
14  package gate.creole;
15  
16  import java.util.Collection;
17  
18  import gate.Controller;
19  
20  /**
21   * A Conditional controller is a controller that keeps a running strategy for
22   * each PR contained. The running strategy decides whether a particular PR will
23   * be run or not.
24   */
25  
26  public interface ConditionalController extends Controller{
27  
28    /**
29     * Gets the collection of running strategies for the contained PRs.
30     * The iterator of this collection should return the running strategies in
31     * sync with the iterator for the getPRs() method of {@link Controller}.
32     * @return a Collection object.
33     */
34    public Collection getRunningStrategies();
35  
36    /**
37     * Populates this controller with the appropiate running strategies from a
38     * collection of running strategies
39     * (optional operation).
40     *
41     * Controllers that are serializable must implement this method needed by GATE
42     * to restore their contents.
43     * @throws UnsupportedOperationException if the <tt>setPRs</tt> method
44     *         is not supported by this controller.
45     */
46    public void setRunningStrategies(Collection strategies);
47  }