Clover coverage report - QedeqKernelSe Coverage Report
Coverage timestamp: Do Mai 10 2007 03:16:40 CEST
file stats: LOC: 96   Methods: 7
NCLOC: 36   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
ModuleEventLog.java 100% 80% 85,7% 87%
coverage coverage
 1    /* $Id: ModuleEventLog.java,v 1.3 2007/05/10 00:37:51 m31 Exp $
 2    *
 3    * This file is part of the project "Hilbert II" - http://www.qedeq.org
 4    *
 5    * Copyright 2000-2007, Michael Meyling <mime@qedeq.org>.
 6    *
 7    * "Hilbert II" is free software; you can redistribute
 8    * it and/or modify it under the terms of the GNU General Public
 9    * License as published by the Free Software Foundation; either
 10    * version 2 of the License, or (at your option) any later version.
 11    *
 12    * This program is distributed in the hope that it will be useful,
 13    * but WITHOUT ANY WARRANTY; without even the implied warranty of
 14    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 15    * GNU General Public License for more details.
 16    */
 17   
 18    package org.qedeq.kernel.log;
 19   
 20    import java.io.PrintStream;
 21    import java.util.ArrayList;
 22    import java.util.List;
 23   
 24    import org.qedeq.kernel.bo.module.ModuleProperties;
 25   
 26   
 27    /**
 28    * This class organizes the logging of module events.
 29    *
 30    * @version $Revision: 1.3 $
 31    * @author Michael Meyling
 32    */
 33    public final class ModuleEventLog implements ModuleEventListener {
 34   
 35    /** The one and only instance. */
 36    private static ModuleEventLog instance = new ModuleEventLog();
 37   
 38    /** The loggers. */
 39    private List loggers = new ArrayList();
 40   
 41   
 42    /**
 43    * Get instance of Logger.
 44    *
 45    * @return singleton
 46    */
 47  51 public static final ModuleEventLog getInstance() {
 48  51 return instance;
 49    }
 50   
 51   
 52    /**
 53    * Don't use me outside of this class.
 54    */
 55  3 private ModuleEventLog() {
 56    }
 57   
 58    /**
 59    * Add listener.
 60    *
 61    * @param log Add this listener.
 62    */
 63  3 public final void addLog(final ModuleEventListener log) {
 64  3 loggers.add(log);
 65    }
 66   
 67    /**
 68    * Add stream listener.
 69    *
 70    * @param out Put messages into this stream.
 71    */
 72  0 public final void addLog(final PrintStream out) {
 73  0 final ModuleEventListener log = new DefaultModuleEventListener(out);
 74  0 loggers.add(log);
 75    }
 76   
 77  17 public void addModule(final ModuleProperties prop) {
 78  17 for (int i = 0; i < loggers.size(); i++) {
 79  17 ((ModuleEventListener) loggers.get(i)).addModule(prop);
 80    }
 81    }
 82   
 83  30 public void stateChanged(final ModuleProperties prop) {
 84  30 for (int i = 0; i < loggers.size(); i++) {
 85  30 ((ModuleEventListener) loggers.get(i)).stateChanged(prop);
 86    }
 87    }
 88   
 89  1 public void removeModule(final ModuleProperties prop) {
 90  1 for (int i = 0; i < loggers.size(); i++) {
 91  1 ((ModuleEventListener) loggers.get(i)).removeModule(prop);
 92    }
 93    }
 94   
 95   
 96    }