Subversion Repositories DevTools

Rev

Rev 7033 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.erggroup.buildtool.daemon;

import java.util.Timer;
import java.util.TimerTask;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**Task scheduling template
 */
public class ResumeTimerTask
  extends TimerTask
{
  /**Logger
   * @attribute
   */
  private static final Logger mLogger = LoggerFactory.getLogger(ResumeTimerTask.class);

  /**initially false
   * true when cancelled
   * @attribute
   */
  private boolean mTimerCancelled = false;

  /**timer handle to cancel the Timer thread
   * @attribute
   */
  private Timer mTimer;

  /**constructor
   */
  ResumeTimerTask()
  {
    mLogger.debug("ResumeTimerTask");
  }

  /**notifies all threads waiting on this objects monitor
   */
  public void run()
  {
    synchronized(BuildThread.mSynchroniser)
    {
      mLogger.debug("run");
      // wake up all BuildThreads waiting on its monitor
      BuildThread.mSynchroniser.notifyAll();
      mTimer.cancel();
      mTimerCancelled = true;
    }
  }

  /**accessor
   */
  void setTimer(Timer timer)
  {
    mLogger.debug("setTimer");
    mTimer = timer;
    mTimerCancelled = false;
  }

  /** Indicates that the time is not active
   * @return true - Timer is not active, False - Timer has been set
   * 
   */
  boolean isCancelled()
  {
    mLogger.debug("isCancelled");
    mLogger.info("isCancelled returned " + mTimerCancelled);
    return mTimerCancelled;
  }
}