You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by ad...@apache.org on 2002/05/17 09:33:24 UTC

cvs commit: jakarta-ant-myrmidon/container/src/java/org/apache/myrmidon/components/event DefaultTaskEventManager.java

adammurdoch    02/05/17 00:33:24

  Modified:    container/src/java/org/apache/myrmidon/components/event
                        DefaultTaskEventManager.java
  Log:
  removeListener() was broken.  Now uses a List instead of messing with arrays.
  
  Revision  Changes    Path
  1.2       +8 -26     jakarta-ant-myrmidon/container/src/java/org/apache/myrmidon/components/event/DefaultTaskEventManager.java
  
  Index: DefaultTaskEventManager.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant-myrmidon/container/src/java/org/apache/myrmidon/components/event/DefaultTaskEventManager.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DefaultTaskEventManager.java	23 Apr 2002 07:21:39 -0000	1.1
  +++ DefaultTaskEventManager.java	17 May 2002 07:33:24 -0000	1.2
  @@ -10,16 +10,19 @@
   import org.apache.myrmidon.api.event.TaskEvent;
   import org.apache.myrmidon.api.event.TaskListener;
   import org.apache.myrmidon.interfaces.event.TaskEventManager;
  +import java.util.List;
  +import java.util.ArrayList;
   
   /**
    * Support for the task listener event dispatching.
    *
    * @author <a href="mailto:peter@apache.org">Peter Donald</a>
  - * @version $Revision: 1.1 $ $Date: 2002/04/23 07:21:39 $
  + * @version $Revision: 1.2 $ $Date: 2002/05/17 07:33:24 $
    */
   public class DefaultTaskEventManager
       implements TaskEventManager
   {
  +    private final List m_listenerList = new ArrayList();
       private TaskListener[] m_listeners = new TaskListener[ 0 ];
   
       /**
  @@ -29,10 +32,8 @@
        */
       public void addTaskListener( final TaskListener listener )
       {
  -        final TaskListener[] listeners = new TaskListener[ m_listeners.length + 1 ];
  -        System.arraycopy( m_listeners, 0, listeners, 0, m_listeners.length );
  -        listeners[ m_listeners.length ] = listener;
  -        m_listeners = listeners;
  +        m_listenerList.add( listener );
  +        m_listeners = (TaskListener[])m_listenerList.toArray( new TaskListener[ m_listenerList.size() ] );
       }
   
       /**
  @@ -42,29 +43,10 @@
        */
       public void removeTaskListener( final TaskListener listener )
       {
  -        int found = -1;
  -
  -        for( int i = 0; i < m_listeners.length; i++ )
  -        {
  -            if( listener == m_listeners[ i ] )
  -            {
  -                found = i;
  -                break;
  -            }
  -        }
  -
  -        if( -1 == found )
  +        if( m_listenerList.remove( listener ) )
           {
  -            return;
  +            m_listeners = (TaskListener[])m_listenerList.toArray( new TaskListener[ m_listenerList.size() ] );
           }
  -
  -        final TaskListener[] listeners = new TaskListener[ m_listeners.length - 1 ];
  -        System.arraycopy( m_listeners, 0, listeners, 0, found );
  -
  -        final int count = m_listeners.length - found - 1;
  -        System.arraycopy( m_listeners, found, listeners, found + 1, count );
  -
  -        m_listeners = listeners;
       }
   
       /**
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>