EMMA Coverage Report (generated Sat Oct 08 11:41:37 CEST 2011)
[all classes][net.sf.jomic.tools]

COVERAGE SUMMARY FOR SOURCE FILE [ProgressChangeSupport.java]

nameclass, %method, %block, %line, %
ProgressChangeSupport.java100% (1/1)100% (5/5)71%  (95/133)85%  (21.2/25)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ProgressChangeSupport100% (1/1)100% (5/5)71%  (95/133)85%  (21.2/25)
removeProgressChangeListener (ProgressChangeListener): void 100% (1/1)63%  (22/35)78%  (4.7/6)
addProgressChangeListener (ProgressChangeListener): void 100% (1/1)66%  (25/38)81%  (4.9/6)
fireProgressChangedEvent (Task): void 100% (1/1)76%  (28/37)88%  (7.9/9)
<static initializer> 100% (1/1)80%  (12/15)80%  (0.8/1)
ProgressChangeSupport (): void 100% (1/1)100% (8/8)100% (3/3)

1// Jomic - a viewer for comic book archives.
2// Copyright (C) 2004-2011 Thomas Aglassinger
3//
4// This program is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// This program is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with this program.  If not, see <http://www.gnu.org/licenses/>.
16package net.sf.jomic.tools;
17 
18import java.util.Iterator;
19import java.util.LinkedList;
20import java.util.List;
21 
22/**
23 *  Utility class to simplify implementing a Progressable.
24 *
25 * @author    Thomas Aglassinger
26 * @see       Task
27 */
28public class ProgressChangeSupport
29{
30    private List listeners;
31 
32    public ProgressChangeSupport() {
33        listeners = new LinkedList();
34    }
35 
36    public void addProgressChangeListener(ProgressChangeListener newListener) {
37        assert newListener != null;
38 
39        synchronized (listeners) {
40            assert !listeners.contains(newListener);
41            listeners.add(newListener);
42        }
43    }
44 
45    public void fireProgressChangedEvent(Task source) {
46        assert source != null;
47 
48        synchronized (listeners) {
49            Iterator listenerRider = listeners.iterator();
50 
51            while (listenerRider.hasNext()) {
52                ProgressChangeListener listener = (ProgressChangeListener) listenerRider.next();
53 
54                listener.progressChanged(source);
55            }
56        }
57    }
58 
59    public void removeProgressChangeListener(ProgressChangeListener newListener) {
60        assert newListener != null;
61 
62        synchronized (listeners) {
63            boolean removed = listeners.remove(newListener);
64 
65            assert removed;
66        }
67    }
68}

[all classes][net.sf.jomic.tools]
EMMA 2.0.4217 (C) Vladimir Roubtsov