View Javadoc

1   /*
2    * Copyright (c) 2003-2008 by Cosylab d. d.
3    *
4    * This file is part of Java-Common.
5    *
6    * Java-Common is free software: you can redistribute it and/or modify
7    * it under the terms of the GNU General Public License as published by
8    * the Free Software Foundation, either version 3 of the License, or
9    * (at your option) any later version.
10   *
11   * Java-Common is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   * GNU General Public License for more details.
15   *
16   * You should have received a copy of the GNU General Public License
17   * along with Java-Common.  If not, see <http://www.gnu.org/licenses/>.
18   */
19  
20  package com.cosylab.util;
21  
22  /**
23   * Interface that defines a task that can be run by Scheduler.
24   *
25   * @author <a href="mailto:ales.pucelj@cosylab.com">Ales Pucelj</a>
26   * @version $id$
27   * @deprecated Use concurency from Java 1.5 instead.
28   */
29  public interface SchedulerTask extends Runnable
30  {
31  	/**
32  	 * This task should be canceled at first available oportunity.
33  	 */
34  	void cancel();
35  
36  	/**
37  	 * Returns true if this task is scheduled for canceling. One canceled
38  	 * returns true, this task will never be executed again. If task is
39  	 * running currently, it will finish, then be destroyed.
40  	 *
41  	 * @return True if the task should be destroyed.
42  	 */
43  	boolean isCanceled();
44  
45  	/**
46  	 * Returns name of this task. This name is for informative purposes only.
47  	 * Can be null. If specified it can aid in debugging, since the thread
48  	 * executing this task can be identified.
49  	 *
50  	 * @return Name Name of this task or null.
51  	 */
52  	String getTaskName();
53  
54  	/**
55  	 * Interval between two executions. This value indicates the desired time
56  	 * between to calls to run() method. If value is negative, the task will
57  	 * be executed at next available oportunity.
58  	 * 
59  	 * <p>
60  	 * If this value is changed while task is already scheduled, changes will
61  	 * take effect after this task is run next time.
62  	 * </p>
63  	 *
64  	 * @return Time in miliseconds.
65  	 */
66  	long getInterval();
67  
68  	/**
69  	 * Method that runs this task. Deliberately made to clash with Thread.run()
70  	 * to prevent this class to be implemented as a Thread or Runnable.
71  	 */
72  	void run();
73  }
74  
75  /* __oOo__ */