Split ListenerSupport into two classes.
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Wed, 12 Nov 2008 23:43:13 +0000 (00:43 +0100)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Wed, 12 Nov 2008 23:43:13 +0000 (00:43 +0100)
Extend InsertListenerSupport from new basic ListenerSupport (because there are no fixes sources).

src/net/pterodactylus/jsite/core/InsertListenerSupport.java
src/net/pterodactylus/util/event/FixedSourceListenerSupport.java [new file with mode: 0644]
src/net/pterodactylus/util/event/ListenerSupport.java

index 52ce219..3a6ce69 100644 (file)
@@ -26,26 +26,18 @@ import net.pterodactylus.util.event.ListenerSupport;
  *
  * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
  */
-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);
                }
        }
 
@@ -53,10 +45,12 @@ public class InsertListenerSupport extends ListenerSupport<Insert, InsertListene
         * 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);
                }
        }
 
@@ -64,10 +58,12 @@ public class InsertListenerSupport extends ListenerSupport<Insert, InsertListene
         * 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);
                }
        }
 
@@ -75,10 +71,12 @@ public class InsertListenerSupport extends ListenerSupport<Insert, InsertListene
         * 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);
                }
        }
 
@@ -86,12 +84,14 @@ public class InsertListenerSupport extends ListenerSupport<Insert, InsertListene
         * 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);
                }
        }
 
@@ -99,10 +99,12 @@ public class InsertListenerSupport extends ListenerSupport<Insert, InsertListene
         * 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);
                }
        }
 
diff --git a/src/net/pterodactylus/util/event/FixedSourceListenerSupport.java b/src/net/pterodactylus/util/event/FixedSourceListenerSupport.java
new file mode 100644 (file)
index 0000000..3484a43
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * 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 &lt;bombe@freenetproject.org&gt;
+ */
+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;
+       }
+
+}
index 1b11296..a339d27 100644 (file)
 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 &lt;bombe@freenetproject.org&gt;
+ *            The type of the event listener
+ * @author David Roden &lt;droden@gmail.com&gt;
  */
-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
@@ -73,23 +59,11 @@ public class ListenerSupport<S, L> {
                }
        }
 
-       //
-       // 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
         */
@@ -99,4 +73,6 @@ public class ListenerSupport<S, L> {
                }
        }
 
+       /* TODO */
+
 }