001 package org.hackystat.tickertape.server; 002 003 import java.util.TimerTask; 004 import java.util.logging.Logger; 005 006 import org.hackystat.tickertape.ticker.Ticker; 007 import org.hackystat.tickertape.tickerlingua.TickerLingua; 008 import org.hackystat.tickertape.tickerlingua.Tickertape; 009 010 /** 011 * A TimerTask that supports the periodic running of a Tickertape instance. 012 * @author Philip Johnson 013 */ 014 public class TickertapeTask extends TimerTask { 015 016 /** Holds the tickertape instance associated with this timer task. */ 017 private Tickertape tickertape; 018 /** The logger that will record information about tickertape execution. */ 019 private Logger logger; 020 021 private TickerLingua tickerLingua; 022 023 /** 024 * Creates a new task that will execute the associated tickertape processing. 025 * @param tickertape The tickertape definition. 026 * @param tickerLingua The tickerLingua definition. 027 * @param logger The logger. 028 */ 029 public TickertapeTask(Tickertape tickertape, TickerLingua tickerLingua, Logger logger) { 030 this.tickertape = tickertape; 031 this.logger = logger; 032 this.tickerLingua = tickerLingua; 033 } 034 035 /** 036 * When this task wakes up, it will invoke the Ticker from this Tickertape instance. 037 */ 038 @Override 039 public void run() { 040 this.logger.info("Running tickertape: " + tickertape.getId()); 041 Ticker ticker = this.tickertape.getTicker(); 042 ticker.run(tickertape, tickerLingua, logger); 043 } 044 }