You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2014/07/11 22:24:10 UTC

svn commit: r1609804 - in /commons/proper/configuration/trunk/src: main/java/org/apache/commons/configuration/event/EventListenerList.java test/java/org/apache/commons/configuration/event/TestEventListenerList.java

Author: oheger
Date: Fri Jul 11 20:24:09 2014
New Revision: 1609804

URL: http://svn.apache.org/r1609804
Log:
Extended EventListenerList to query registration information.

A method was added which returns an unmodifiable list with event listener
registration information.

Modified:
    commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/event/EventListenerList.java
    commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/event/TestEventListenerList.java

Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/event/EventListenerList.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/event/EventListenerList.java?rev=1609804&r1=1609803&r2=1609804&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/event/EventListenerList.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/event/EventListenerList.java Fri Jul 11 20:24:09 2014
@@ -16,6 +16,7 @@
  */
 package org.apache.commons.configuration.event;
 
+import java.util.Collections;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -194,6 +195,17 @@ public class EventListenerList
     }
 
     /**
+     * Returns an (unmodifiable) list with registration information about all
+     * event listeners registered at this object.
+     *
+     * @return a list with event listener registration information
+     */
+    public List<EventListenerRegistrationData<?>> getRegistrations()
+    {
+        return Collections.unmodifiableList(listeners);
+    }
+
+    /**
      * Helper method for calling an event listener with an event. We have to
      * operate on raw types to make this code compile. However, this is safe
      * because of the way the listeners have been registered and associated with

Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/event/TestEventListenerList.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/event/TestEventListenerList.java?rev=1609804&r1=1609803&r2=1609804&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/event/TestEventListenerList.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/event/TestEventListenerList.java Fri Jul 11 20:24:09 2014
@@ -428,6 +428,39 @@ public class TestEventListenerList
     }
 
     /**
+     * Tests whether all event listener registrations can be queried.
+     */
+    @Test
+    public void testGetRegistrations()
+    {
+        EventListenerRegistrationData<EventSub1> reg1 =
+                new EventListenerRegistrationData<EventSub1>(typeSub1,
+                        new ListenerTestImpl());
+        EventListenerRegistrationData<EventSub2> reg2 =
+                new EventListenerRegistrationData<EventSub2>(typeSub2,
+                        new ListenerTestImpl());
+        list.addEventListener(reg1);
+        list.addEventListener(reg2);
+
+        List<EventListenerRegistrationData<?>> registrations =
+                list.getRegistrations();
+        assertEquals("Wrong number of registrations", 2, registrations.size());
+        assertTrue("Registration 1 not found", registrations.contains(reg1));
+        assertTrue("Registration 2 not found", registrations.contains(reg2));
+    }
+
+    /**
+     * Tests that the list with registration information cannot be modified.
+     */
+    @Test(expected = UnsupportedOperationException.class)
+    public void testGetRegistrationsModify()
+    {
+        list.getRegistrations().add(
+                new EventListenerRegistrationData<EventBase>(typeBase,
+                        new ListenerTestImpl()));
+    }
+
+    /**
      * Test event class. For testing purposes, a small hierarchy of test event
      * class is created. This way it can be checked whether event types are
      * correctly evaluated and take the event hierarchy into account.