import net.pterodactylus.util.template.Template;
/**
- * TODO
+ * Notification that signals that new Sones have been discovered.
*
* @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
*/
public class NewSoneNotification extends TemplateNotification {
+ /** The new Sones. */
private List<Sone> newSones = Collections.synchronizedList(new ArrayList<Sone>());
/**
- * TODO
+ * Creates a new “new Sone discovered” notification.
+ *
+ * @param template
+ * The template to render
*/
public NewSoneNotification(Template template) {
super(template);
+ template.set("sones", newSones);
}
//
// ACCESSORS
//
+ /**
+ * Returns whether there are any new Sones.
+ *
+ * @return {@code true} if there are no new Sones, {@code false} if there
+ * are new Sones
+ */
public boolean isEmpty() {
return newSones.isEmpty();
}
+ /**
+ * Adds a discovered Sone.
+ *
+ * @param sone
+ * The new Sone
+ */
public void addSone(Sone sone) {
newSones.add(sone);
touch();
}
+ /**
+ * Removes the given Sone from the list of new Sones.
+ *
+ * @param sone
+ * The Sone to remove
+ */
+ public void removeSone(Sone sone) {
+ newSones.remove(sone);
+ touch();
+ }
+
//
// ABSTRACTNOTIFICATION METHODS
//