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    }