1 package net.sf.openrocket.util;
3 import java.util.Collection;
4 import java.util.HashSet;
5 import java.util.Iterator;
8 * A Set that additionally implements the Monitorable interface.
10 * @author Sampo Niskanen <sampo.niskanen@iki.fi>
12 public class MonitorableSet<E> extends HashSet<E> implements Monitorable {
17 public boolean add(E e) {
23 public boolean addAll(Collection<? extends E> c) {
25 return super.addAll(c);
35 public Iterator<E> iterator() {
36 return new MonitorableIterator<E>(super.iterator());
40 public boolean remove(Object o) {
42 return super.remove(o);
46 public boolean removeAll(Collection<?> c) {
48 return super.removeAll(c);
52 public boolean retainAll(Collection<?> c) {
54 return super.retainAll(c);
59 public int getModID() {
63 @SuppressWarnings("unchecked")
65 public MonitorableSet<E> clone() {
66 return (MonitorableSet<E>) super.clone();
69 private class MonitorableIterator<F> implements Iterator<F> {
70 private final Iterator<F> iterator;
72 public MonitorableIterator(Iterator<F> iterator) {
73 this.iterator = iterator;
77 public boolean hasNext() {
78 return iterator.hasNext();
83 return iterator.next();
87 public void remove() {