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 21 Sep 2001
10   *
11   *  $Id: Executable.java,v 1.5 2005/01/11 13:51:30 ian Exp $
12   */
13  package gate;
14  
15  import gate.creole.ExecutionException;
16  
17  /**
18   * Describes entities that can be executed such as {@link ProcessingResource}s
19   * or {@link Controller}s.
20   */
21  public interface Executable {
22  
23    /**
24     * Starts the execution of this executable
25     */
26    public void execute() throws ExecutionException;
27  
28    /**
29     * Notifies this executable that it should stop its execution as soon as
30     * possible.
31     */
32    public void interrupt();
33  
34    /**
35     * Returns true if this executable has been interrupted via the
36     * {@link #interrupt()} method since the last time its {@link #execute()} method
37     * was called
38     */
39    public boolean isInterrupted();
40  }