EMMA Coverage Report (generated Thu Jan 20 11:39:44 EST 2011)
[all classes][com.hammurapi.common]

COVERAGE SUMMARY FOR SOURCE FILE [FreezeableCollection.java]

nameclass, %method, %block, %line, %
FreezeableCollection.java100% (2/2)38%  (9/24)39%  (56/145)38%  (16/42)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class FreezeableCollection100% (1/1)30%  (6/20)31%  (37/119)34%  (12/35)
access$1 (FreezeableCollection): void 0%   (0/1)0%   (0/3)0%   (0/1)
addAll (Collection): boolean 0%   (0/1)0%   (0/7)0%   (0/2)
clear (): void 0%   (0/1)0%   (0/6)0%   (0/3)
contains (Object): boolean 0%   (0/1)0%   (0/5)0%   (0/1)
containsAll (Collection): boolean 0%   (0/1)0%   (0/5)0%   (0/1)
equals (Object): boolean 0%   (0/1)0%   (0/5)0%   (0/1)
hashCode (): int 0%   (0/1)0%   (0/4)0%   (0/1)
isEmpty (): boolean 0%   (0/1)0%   (0/4)0%   (0/1)
remove (Object): boolean 0%   (0/1)0%   (0/7)0%   (0/2)
removeAll (Collection): boolean 0%   (0/1)0%   (0/7)0%   (0/2)
retainAll (Collection): boolean 0%   (0/1)0%   (0/7)0%   (0/2)
size (): int 0%   (0/1)0%   (0/4)0%   (0/1)
toArray (): Object [] 0%   (0/1)0%   (0/4)0%   (0/1)
toArray (Object []): Object [] 0%   (0/1)0%   (0/5)0%   (0/1)
checkFrozen (): void 100% (1/1)36%  (5/14)40%  (2/5)
FreezeableCollection (Collection): void 100% (1/1)100% (12/12)100% (4/4)
access$0 (FreezeableCollection): Collection 100% (1/1)100% (3/3)100% (1/1)
add (Object): boolean 100% (1/1)100% (7/7)100% (2/2)
freeze (): void 100% (1/1)100% (5/5)100% (2/2)
iterator (): Iterator 100% (1/1)100% (5/5)100% (1/1)
     
class FreezeableCollection$1100% (1/1)75%  (3/4)73%  (19/26)62%  (5/8)
remove (): void 0%   (0/1)0%   (0/7)0%   (0/3)
FreezeableCollection$1 (FreezeableCollection): void 100% (1/1)100% (11/11)100% (3/3)
hasNext (): boolean 100% (1/1)100% (4/4)100% (1/1)
next (): Object 100% (1/1)100% (4/4)100% (1/1)

1package com.hammurapi.common;
2 
3import java.util.Collection;
4import java.util.Iterator;
5import java.util.concurrent.atomic.AtomicBoolean;
6 
7public class FreezeableCollection<E> implements Collection<E> {
8        
9        private Collection<E> master;
10        private AtomicBoolean freezed = new AtomicBoolean(false);
11 
12        public FreezeableCollection(Collection<E> master) {
13                this.master = master;
14        }
15 
16        public int size() {
17                return master.size();
18        }
19 
20        public boolean isEmpty() {
21                return master.isEmpty();
22        }
23 
24        public boolean contains(Object o) {
25                return master.contains(o);
26        }
27 
28        public Iterator<E> iterator() {
29                return new Iterator<E>() {
30                        Iterator<E> masterIterator = master.iterator();
31 
32                        @Override
33                        public boolean hasNext() {
34                                return masterIterator.hasNext();
35                        }
36 
37                        @Override
38                        public E next() {
39                                return masterIterator.next();
40                        }
41 
42                        @Override
43                        public void remove() {
44                                checkFrozen();
45                                masterIterator.remove();
46                        }
47                        
48                };
49                
50        }
51 
52        public Object[] toArray() {
53                return master.toArray();
54        }
55 
56        public <T> T[] toArray(T[] a) {
57                return master.toArray(a);
58        }
59 
60        public boolean add(E e) {
61                checkFrozen();
62                return master.add(e);
63        }
64 
65        public boolean remove(Object o) {
66                checkFrozen();
67                return master.remove(o);
68        }
69 
70        public boolean containsAll(Collection<?> c) {
71                return master.containsAll(c);
72        }
73 
74        public boolean addAll(Collection<? extends E> c) {
75                checkFrozen();
76                return master.addAll(c);
77        }
78 
79        public boolean removeAll(Collection<?> c) {
80                checkFrozen();
81                return master.removeAll(c);
82        }
83 
84        public boolean retainAll(Collection<?> c) {
85                checkFrozen();
86                return master.retainAll(c);
87        }
88 
89        public void clear() {
90                checkFrozen();
91                master.clear();
92        }
93 
94        public boolean equals(Object o) {
95                return master.equals(o);
96        }
97 
98        public int hashCode() {
99                return master.hashCode();
100        }
101        
102        /**
103         * Freezes collection making it unmodifiable.
104         */
105        public void freeze() {
106                freezed.set(true);
107        }
108 
109        private void checkFrozen() {
110                if (freezed.get()) {
111                        IllegalStateException th = new IllegalStateException("Collection is frozen, no modifications are allowed");
112                        th.printStackTrace();
113                        throw th;
114                }
115        }
116 
117}

[all classes][com.hammurapi.common]
EMMA 2.0.5312 EclEmma Fix 2 (C) Vladimir Roubtsov