/**
 * TokenTimerTask.java
 * Created Jan 8, 2007
 * Copyright (C) Tandberg Television 2007
 */
package com.tandbergtv.workflow.driver.timer;

import java.util.concurrent.Callable;

import org.apache.log4j.Logger;
import org.jbpm.graph.exe.Token;
import org.jbpm.scheduler.exe.Timer;

/**
 * Executes the JBPM Timer that is associated with a token
 * 
 * @author Sahil Verma
 */
public class TokenTimer implements Callable<Void> {
	
	private Timer timer;
	
	private static final Logger logger = Logger.getLogger(TokenTimer.class);
	
	/**
	 * Creates a TokenTimerTask
	 */
	public TokenTimer(Timer timer) {
		super();
		this.timer = timer;
	}

	/**
	 * @return Returns the timer.
	 */
	public Timer getTimer() {
		return this.timer;
	}

	/**
	 * @return Returns the timer.
	 */
	public Token getToken() {
		return this.timer.getToken();
	}

	/* (non-Javadoc)
	 * @see java.util.concurrent.Callable#call()
	 */
	public Void call() {
		logger.debug(timer.getToken() + ", timer about to fire");
		this.timer.execute();
		return (Void)null;
	}
}
