001 /*
002 * Cobertura - http://cobertura.sourceforge.net/
003 *
004 * Copyright (C) 2003 jcoverage ltd.
005 * Copyright (C) 2005 Mark Doliner <thekingant@users.sourceforge.net>
006 *
007 * Cobertura is free software; you can redistribute it and/or modify
008 * it under the terms of the GNU General Public License as published
009 * by the Free Software Foundation; either version 2 of the License,
010 * or (at your option) any later version.
011 *
012 * Cobertura is distributed in the hope that it will be useful, but
013 * WITHOUT ANY WARRANTY; without even the implied warranty of
014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015 * General Public License for more details.
016 *
017 * You should have received a copy of the GNU General Public License
018 * along with Cobertura; if not, write to the Free Software
019 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
020 * USA
021 */
022
023 package net.sourceforge.cobertura.coverage;
024
025 import java.util.TimerTask;
026
027 import org.apache.log4j.Logger;
028
029 /**
030 * Timer task to save the instrumentation to disk.
031 */
032 class SaveInstrumentationTimer extends TimerTask
033 {
034
035 private static final Logger logger = Logger
036 .getLogger(SaveInstrumentationTimer.class);
037
038 final InstrumentationPersistence instrumentationPersistence;
039
040 SaveInstrumentationTimer(
041 InstrumentationPersistence instrumentationPersistence)
042 {
043 this.instrumentationPersistence = instrumentationPersistence;
044 }
045
046 public void run()
047 {
048 if (logger.isDebugEnabled())
049 {
050 logger.debug("save instrumentation task has started");
051 }
052
053 instrumentationPersistence.saveInstrumentation();
054
055 if (logger.isInfoEnabled())
056 {
057 logger.info("saved: "
058 + instrumentationPersistence.keySet().size() + " items.");
059 }
060 }
061 }