1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.mina.util;
21
22 import java.io.Serializable;
23 import java.util.AbstractSet;
24 import java.util.Collection;
25 import java.util.Iterator;
26 import java.util.Map;
27 import java.util.Set;
28
29
30
31
32
33
34 public class MapBackedSet<E> extends AbstractSet<E> implements Serializable {
35
36 private static final long serialVersionUID = -8347878570391674042L;
37
38 protected final Map<E, Boolean> map;
39
40 public MapBackedSet(Map<E, Boolean> map) {
41 this.map = map;
42 }
43
44 public MapBackedSet(Map<E, Boolean> map, Collection<E> c) {
45 this.map = map;
46 addAll(c);
47 }
48
49 @Override
50 public int size() {
51 return map.size();
52 }
53
54 @Override
55 public boolean contains(Object o) {
56 return map.containsKey(o);
57 }
58
59 @Override
60 public Iterator<E> iterator() {
61 return map.keySet().iterator();
62 }
63
64 @Override
65 public boolean add(E o) {
66 return map.put(o, Boolean.TRUE) == null;
67 }
68
69 @Override
70 public boolean remove(Object o) {
71 return map.remove(o) != null;
72 }
73
74 @Override
75 public void clear() {
76 map.clear();
77 }
78 }