diff options
author | Christian Schneppe <christian@pix-art.de> | 2017-09-24 21:27:52 +0200 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2017-09-24 21:30:58 +0200 |
commit | 83f362c8b4f25d56ab2a74e37acd6b0fd0125a9c (patch) | |
tree | 01b2b07c70a307a526944133b6dfc88f3e2c0604 /src/main/java/de/pixart/messenger/utils/WeakReferenceSet.java | |
parent | 259d29518331c4517c36e2baf073615fb7bf193f (diff) |
refactored AudioPlayer
Diffstat (limited to 'src/main/java/de/pixart/messenger/utils/WeakReferenceSet.java')
-rw-r--r-- | src/main/java/de/pixart/messenger/utils/WeakReferenceSet.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/main/java/de/pixart/messenger/utils/WeakReferenceSet.java b/src/main/java/de/pixart/messenger/utils/WeakReferenceSet.java new file mode 100644 index 000000000..b6ccbd560 --- /dev/null +++ b/src/main/java/de/pixart/messenger/utils/WeakReferenceSet.java @@ -0,0 +1,26 @@ +package de.pixart.messenger.utils; + +import java.lang.ref.WeakReference; +import java.util.HashSet; +import java.util.Iterator; + +public class WeakReferenceSet<T> extends HashSet<WeakReference<T>> { + + public void removeWeakReferenceTo(T reference) { + for (Iterator<WeakReference<T>> iterator = iterator(); iterator.hasNext(); ) { + if (reference == iterator.next().get()) { + iterator.remove(); + } + } + } + + + public void addWeakReferenceTo(T reference) { + for (WeakReference<T> weakReference : this) { + if (reference == weakReference.get()) { + return; + } + } + this.add(new WeakReference<>(reference)); + } +}
\ No newline at end of file |