You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by sc...@apache.org on 2003/08/31 23:09:49 UTC

cvs commit: jakarta-commons/collections/src/test/org/apache/commons/collections/decorators ObservedTestHelper.java

scolebourne    2003/08/31 14:09:49

  Modified:    collections/src/java/org/apache/commons/collections/event
                        StandardModificationListener.java
                        ModificationHandler.java
                        StandardModificationHandler.java
               collections/src/java/org/apache/commons/collections/decorators
                        ObservedCollection.java
               collections/src/test/org/apache/commons/collections/decorators
                        ObservedTestHelper.java
  Removed:     collections/src/java/org/apache/commons/collections/event
                        ModificationListener.java
  Log:
  Refactor events so listener is defined as an Object for flexibility
  
  Revision  Changes    Path
  1.3       +5 -3      jakarta-commons/collections/src/java/org/apache/commons/collections/event/StandardModificationListener.java
  
  Index: StandardModificationListener.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/event/StandardModificationListener.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- StandardModificationListener.java	31 Aug 2003 17:25:49 -0000	1.2
  +++ StandardModificationListener.java	31 Aug 2003 21:09:49 -0000	1.3
  @@ -57,6 +57,8 @@
    */
   package org.apache.commons.collections.event;
   
  +import java.util.EventListener;
  +
   /**
    * A listener that receives events from the <code>StandardModificationHandler</code>.
    * <p>
  @@ -73,7 +75,7 @@
    * 
    * @author Stephen Colebourne
    */
  -public interface StandardModificationListener extends ModificationListener {
  +public interface StandardModificationListener extends EventListener {
   
       /**
        * A collection modification is occurring.
  
  
  
  1.3       +10 -5     jakarta-commons/collections/src/java/org/apache/commons/collections/event/ModificationHandler.java
  
  Index: ModificationHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/event/ModificationHandler.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ModificationHandler.java	31 Aug 2003 17:25:49 -0000	1.2
  +++ ModificationHandler.java	31 Aug 2003 21:09:49 -0000	1.3
  @@ -129,7 +129,7 @@
        * @return the listeners
        * @throws UnsupportedOperationException if the handler does not support listeners
        */
  -    public ModificationListener[] getModificationListeners() {
  +    public Object[] getModificationListeners() {
           throw new UnsupportedOperationException("Listeners not supported by " + getClass().getName());
       }
       
  @@ -138,13 +138,18 @@
        * <p>
        * No error occurs if the listener is <code>null</code>.
        * <p>
  +     * The listener does not necessarily have to be a listener in the classic
  +     * JavaBean sense. It is entirely up to the handler as to how it interprets
  +     * the listener parameter. A ClassCastException is thrown if the handler
  +     * cannot interpret the parameter.
  +     * <p>
        * This implementation throws UnsupportedOperationException.
        * 
        * @param listener  the listener to add, may be null (ignored)
        * @throws ClassCastException if the listener is not of the correct type
        * @throws UnsupportedOperationException if the handler does not support listeners
        */
  -    public void addModificationListener(ModificationListener listener) {
  +    public void addModificationListener(Object listener) {
           throw new UnsupportedOperationException("Listeners not supported by " + getClass().getName());
       }
       
  @@ -159,7 +164,7 @@
        * @param listener  the listener to remove, may be null (ignored)
        * @throws UnsupportedOperationException if the handler does not support listeners
        */
  -    public void removeModificationListener(ModificationListener listener) {
  +    public void removeModificationListener(Object listener) {
           throw new UnsupportedOperationException("Listeners not supported by " + getClass().getName());
       }
       
  
  
  
  1.3       +9 -10     jakarta-commons/collections/src/java/org/apache/commons/collections/event/StandardModificationHandler.java
  
  Index: StandardModificationHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/event/StandardModificationHandler.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- StandardModificationHandler.java	31 Aug 2003 17:25:49 -0000	1.2
  +++ StandardModificationHandler.java	31 Aug 2003 21:09:49 -0000	1.3
  @@ -123,8 +123,8 @@
        * 
        * @return the listeners
        */
  -    public synchronized ModificationListener[] getModificationListeners() {
  -        ModificationListener[] lnrs = new ModificationListener[holders.length];
  +    public synchronized Object[] getModificationListeners() {
  +        Object[] lnrs = new Object[holders.length];
           for (int i = 0; i < holders.length; i++) {
               lnrs[i] = holders[i].listener;
           }
  @@ -139,8 +139,8 @@
        * @param listener  the listener to add, may be null (ignored)
        * @throws ClassCastException if the listener is not a StandardModificationListener
        */
  -    public void addModificationListener(ModificationListener listener) {
  -        addModificationListener(listener, -1, -1);
  +    public void addModificationListener(Object listener) {
  +        addModificationListener((StandardModificationListener) listener, -1, -1);
       }
       
       /**
  @@ -151,14 +151,13 @@
        * @param listener  the listener to add, may be null (ignored)
        * @param preMask  the mask for pre events (0 for none, -1 for all)
        * @param postMask  the mask for post events (0 for none, -1 for all)
  -     * @throws ClassCastException if the listener is not a StandardModificationListener
        */
  -    public synchronized void addModificationListener(ModificationListener listener, int preMask, int postMask) {
  +    public synchronized void addModificationListener(StandardModificationListener listener, int preMask, int postMask) {
           if (listener != null) {
               int oldSize = holders.length;
               Holder[] array = new Holder[oldSize + 1];
               System.arraycopy(holders, 0, array, 0, oldSize);
  -            array[oldSize] = new Holder((StandardModificationListener) listener, preMask, postMask);
  +            array[oldSize] = new Holder(listener, preMask, postMask);
               holders = array;
               calculateMasks();
           }
  @@ -173,7 +172,7 @@
        * 
        * @param listener  the listener to remove, may be null (ignored)
        */
  -    public synchronized void removeModificationListener(ModificationListener listener) {
  +    public synchronized void removeModificationListener(Object listener) {
           if (listener != null) {
               switch (holders.length) {
                   case 0:
  
  
  
  1.3       +10 -6     jakarta-commons/collections/src/java/org/apache/commons/collections/decorators/ObservedCollection.java
  
  Index: ObservedCollection.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/decorators/ObservedCollection.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ObservedCollection.java	31 Aug 2003 17:24:46 -0000	1.2
  +++ ObservedCollection.java	31 Aug 2003 21:09:49 -0000	1.3
  @@ -61,7 +61,6 @@
   import java.util.Iterator;
   
   import org.apache.commons.collections.event.ModificationHandler;
  -import org.apache.commons.collections.event.ModificationListener;
   import org.apache.commons.collections.event.StandardModificationHandler;
   import org.apache.commons.collections.event.StandardModificationListener;
   
  @@ -244,7 +243,7 @@
        * @return the listeners
        * @throws UnsupportedOperationException if the handler does not support listeners
        */
  -    public ModificationListener[] getModificationListeners() {
  +    public Object[] getModificationListeners() {
           return getHandler().getModificationListeners();
       }
       
  @@ -253,12 +252,17 @@
        * This method simply delegates to the handler.
        * <p>
        * No error occurs if the listener is <code>null</code>.
  +     * <p>
  +     * The listener does not necessarily have to be a listener in the classic
  +     * JavaBean sense. It is entirely up to the handler as to how it interprets
  +     * the listener parameter. A ClassCastException is thrown if the handler
  +     * cannot interpret the parameter.
        * 
        * @param listener  the listener to add, may be null (ignored)
        * @throws ClassCastException if the listener is not of the correct type
        * @throws UnsupportedOperationException if the handler does not support listeners
        */
  -    public void addModificationListener(ModificationListener listener) {
  +    public void addModificationListener(Object listener) {
           getHandler().addModificationListener(listener);
       }
       
  @@ -274,7 +278,7 @@
        * @param listener  the listener to remove, may be null (ignored)
        * @throws UnsupportedOperationException if the handler does not support listeners
        */
  -    public void removeModificationListener(ModificationListener listener) {
  +    public void removeModificationListener(Object listener) {
           getHandler().removeModificationListener(listener);
       }
       
  
  
  
  1.3       +3 -4      jakarta-commons/collections/src/test/org/apache/commons/collections/decorators/ObservedTestHelper.java
  
  Index: ObservedTestHelper.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/decorators/ObservedTestHelper.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ObservedTestHelper.java	31 Aug 2003 17:28:42 -0000	1.2
  +++ ObservedTestHelper.java	31 Aug 2003 21:09:49 -0000	1.3
  @@ -64,7 +64,6 @@
   import junit.framework.Assert;
   
   import org.apache.commons.collections.event.ModificationEventType;
  -import org.apache.commons.collections.event.ModificationListener;
   import org.apache.commons.collections.event.StandardModificationEvent;
   import org.apache.commons.collections.event.StandardModificationHandler;
   import org.apache.commons.collections.event.StandardModificationListener;
  @@ -157,7 +156,7 @@
           Assert.assertEquals(0, coll.getModificationListeners().length);
           
           try {
  -            coll.addModificationListener(new ModificationListener() {});
  +            coll.addModificationListener(new Object());
               Assert.fail();
           } catch (ClassCastException ex) {
           }