Extend InsertListenerSupport from new basic ListenerSupport (because there are no fixes sources).
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
*/
-public class InsertListenerSupport extends ListenerSupport<Insert, InsertListener> {
-
- /**
- * Creates a new insert listener support.
- *
- * @param insert
- * The source insert
- */
- public InsertListenerSupport(Insert insert) {
- super(insert);
- }
+public class InsertListenerSupport extends ListenerSupport<InsertListener> {
/**
* Notifies all listeners that the insert was added.
*
* @see InsertListener#insertAdded(Insert)
+ * @param insert
+ * The insert that was added
*/
- public void fireInsertAdded() {
+ public void fireInsertAdded(Insert insert) {
for (InsertListener insertListener : getListeners()) {
- insertListener.insertAdded(getSource());
+ insertListener.insertAdded(insert);
}
}
* Notifies all listeners that the insert was removed.
*
* @see InsertListener#insertRemoved(Insert)
+ * @param insert
+ * The insert that was removed
*/
- public void fireInsertRemoved() {
+ public void fireInsertRemoved(Insert insert) {
for (InsertListener insertListener : getListeners()) {
- insertListener.insertRemoved(getSource());
+ insertListener.insertRemoved(insert);
}
}
* Notifies all listeners that the insert was started.
*
* @see InsertListener#insertStarted(Insert)
+ * @param insert
+ * The insert that was started
*/
- public void fireInsertStarted() {
+ public void fireInsertStarted(Insert insert) {
for (InsertListener insertListener : getListeners()) {
- insertListener.insertStarted(getSource());
+ insertListener.insertStarted(insert);
}
}
* Notifies all listeners that the insert made progress.
*
* @see InsertListener#insertProgressed(Insert)
+ * @param insert
+ * The insert that made progress
*/
- public void fireInsertProgressed() {
+ public void fireInsertProgressed(Insert insert) {
for (InsertListener insertListener : getListeners()) {
- insertListener.insertProgressed(getSource());
+ insertListener.insertProgressed(insert);
}
}
* Notifies all listeners that the insert generated a URI.
*
* @see InsertListener#insertGeneratedURI(Insert, String)
+ * @param insert
+ * The insert that generated a URI
* @param generatedUri
* The URI that was generated
*/
- public void fireInsertGeneratedURI(String generatedUri) {
+ public void fireInsertGeneratedURI(Insert insert, String generatedUri) {
for (InsertListener insertListener : getListeners()) {
- insertListener.insertGeneratedURI(getSource(), generatedUri);
+ insertListener.insertGeneratedURI(insert, generatedUri);
}
}
* Notifies all listeners that the insert has finished.
*
* @see InsertListener#insertFinished(Insert)
+ * @param insert
+ * The insert that was finished
*/
- public void fireInsertFinished() {
+ public void fireInsertFinished(Insert insert) {
for (InsertListener insertListener : getListeners()) {
- insertListener.insertFinished(getSource());
+ insertListener.insertFinished(insert);
}
}
--- /dev/null
+/*
+ * jSite-next - ListenerSupport.java -
+ * Copyright © 2008 David Roden
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+package net.pterodactylus.util.event;
+
+import java.util.EventListener;
+
+/**
+ * Helper class to manager {@link EventListener}s and a fixed source for events.
+ *
+ * @param <S>
+ * The type of the source
+ * @param <L>
+ * The type of the listeners
+ * @author David ‘Bombe’ Roden <bombe@freenetproject.org>
+ */
+public class FixedSourceListenerSupport<S, L extends EventListener> extends ListenerSupport<L> {
+
+ /** The source of the events. */
+ private final S source;
+
+ /**
+ * Creates a new listener support.
+ *
+ * @param source
+ * The source of all events
+ */
+ public FixedSourceListenerSupport(S source) {
+ this.source = source;
+ }
+
+ /**
+ * Returns the source of all events.
+ *
+ * @return The source of all events
+ */
+ protected S getSource() {
+ return source;
+ }
+
+}
package net.pterodactylus.util.event;
import java.util.ArrayList;
+import java.util.EventListener;
import java.util.List;
/**
- * Helper class to ease listener management.
+ * Helper class for {@link EventListener} management.
*
- * @param <S>
- * The type of the source
* @param <L>
- * The type of the listeners
- * @author David ‘Bombe’ Roden <bombe@freenetproject.org>
+ * The type of the event listener
+ * @author David Roden <droden@gmail.com>
*/
-public class ListenerSupport<S, L> {
-
- /** The source of the events. */
- private final S source;
+public class ListenerSupport<L extends EventListener> {
/** The list of registered listeners. */
private final List<L> listeners = new ArrayList<L>();
/**
- * Creates a new listener support.
- *
- * @param source
- * The source of all events
- */
- public ListenerSupport(S source) {
- this.source = source;
- }
-
- /**
* Adds a listener to the list of registered listeners.
*
* @param listener
}
}
- //
- // PROTECTED METHODS
- //
-
- /**
- * Returns the source of all events.
- *
- * @return The source of all events
- */
- protected S getSource() {
- return source;
- }
-
/**
* Returns a list of all listeners. This list is a copy of the internally
* kept list and as thus will not be modified by calls to
- * {@link #addListener(Object)} or {@link #removeListener(Object)}.
+ * {@link #addListener(EventListener)} or
+ * {@link #removeListener(EventListener)}.
*
* @return The list of all listeners
*/
}
}
+ /* TODO */
+
}