1package eu.siacs.conversations.utils;
2
3import java.lang.ref.WeakReference;
4import java.util.HashSet;
5import java.util.Iterator;
6
7public class WeakReferenceSet<T> extends HashSet<WeakReference<T>> {
8
9 public void removeWeakReferenceTo(T reference) {
10 for (Iterator<WeakReference<T>> iterator = iterator(); iterator.hasNext(); ) {
11 if (reference == iterator.next().get()) {
12 iterator.remove();
13 }
14 }
15 }
16
17
18 public void addWeakReferenceTo(T reference) {
19 for (WeakReference<T> weakReference : this) {
20 if (reference == weakReference.get()) {
21 return;
22 }
23 }
24 this.add(new WeakReference<>(reference));
25 }
26}