projects
/
Sone.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'release-0.6'
[Sone.git]
/
src
/
main
/
java
/
net
/
pterodactylus
/
sone
/
notify
/
ListNotification.java
diff --git
a/src/main/java/net/pterodactylus/sone/notify/ListNotification.java
b/src/main/java/net/pterodactylus/sone/notify/ListNotification.java
index
64c2ecb
..
2f43c58
100644
(file)
--- a/
src/main/java/net/pterodactylus/sone/notify/ListNotification.java
+++ b/
src/main/java/net/pterodactylus/sone/notify/ListNotification.java
@@
-18,8
+18,8
@@
package net.pterodactylus.sone.notify;
import java.util.ArrayList;
package net.pterodactylus.sone.notify;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
import net.pterodactylus.util.notify.TemplateNotification;
import net.pterodactylus.util.template.Template;
import net.pterodactylus.util.notify.TemplateNotification;
import net.pterodactylus.util.template.Template;
@@
-34,7
+34,7
@@
import net.pterodactylus.util.template.Template;
public class ListNotification<T> extends TemplateNotification {
/** The list of new elements. */
public class ListNotification<T> extends TemplateNotification {
/** The list of new elements. */
- private final List<T> elements =
Collections.synchronizedList(new ArrayList<T>()
);
+ private final List<T> elements =
new CopyOnWriteArrayList<T>(
);
/**
* Creates a new list notification.
/**
* Creates a new list notification.
@@
-48,7
+48,7
@@
public class ListNotification<T> extends TemplateNotification {
*/
public ListNotification(String id, String key, Template template) {
super(id, template);
*/
public ListNotification(String id, String key, Template template) {
super(id, template);
- template.set(key, elements);
+ template.
getInitialContext().
set(key, elements);
}
//
}
//
@@
-56,6
+56,15
@@
public class ListNotification<T> extends TemplateNotification {
//
/**
//
/**
+ * Returns the current list of elements.
+ *
+ * @return The current list of elements
+ */
+ public List<T> getElements() {
+ return new ArrayList<T>(elements);
+ }
+
+ /**
* Returns whether there are any new elements.
*
* @return {@code true} if there are no new elements, {@code false} if there
* Returns whether there are any new elements.
*
* @return {@code true} if there are no new elements, {@code false} if there
@@
-84,6
+93,9
@@
public class ListNotification<T> extends TemplateNotification {
*/
public void remove(T element) {
elements.remove(element);
*/
public void remove(T element) {
elements.remove(element);
+ if (elements.isEmpty()) {
+ dismiss();
+ }
touch();
}
touch();
}