Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.jacorb.notification;
  
  /*
   *        JacORB - a free Java ORB
   *
   *   Copyright (C) 1997-2012 Gerald Brose / The JacORB Team.
   *
   *   This library is free software; you can redistribute it and/or
   *   modify it under the terms of the GNU Library General Public
  *   License as published by the Free Software Foundation; either
  *   version 2 of the License, or (at your option) any later version.
  *
  *   This library 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
  *   Library General Public License for more details.
  *
  *   You should have received a copy of the GNU Library General Public
  *   License along with this library; if not, write to the Free
  *   Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
 import java.util.List;
 
Utility class that manages subscriptions of NotifySubscribers and broadcasting of subscription_change requests.

Author(s):
Alphonse Bendt
 
 
 public class SubscriptionManager extends EventTypeSet implements NotifySubscribeOperations
 {
     public static final SubscriptionManager NULL_MANAGER = new SubscriptionManager(.);
     
     private final Logger logger_ = LogUtil.getLogger(getClass().getName());
 
     private final List listeners_;
 
     public SubscriptionManager()
     {
         this(new ArrayList());
     }
 
     private SubscriptionManager(List list)
     {
          = list;
     }
 
     ////////////////////////////////////////
 
     public void addListener(NotifySubscribeOperations listener)
     {
         synchronized ()
         {
             .add(listener);
         }
     }
 
     public void removeListener(NotifySubscribeOperations listener)
     {
         synchronized ()
         {
             .remove(listener);
         }
     }
 
     public void actionSetChanged(EventType[] addedEventType[] removed)
     {
         synchronized ()
         {
             // use a iterator on a copy of the original list here.
             // otherwise the iterator would fail if the list would be
             // modified concurrently which may happen during
             // subscription_change.
             Iterator _i = new ArrayList().iterator();
 
             while (_i.hasNext())
             {
                 NotifySubscribeOperations _listener = (NotifySubscribeOperations_i.next();
 
                 try
                 {
                     _listener.subscription_change(addedremoved);
                 } catch (Exception e)
                 {
                     .warn("subscription_change failed for " + _listenere);
                 }
             }
         }
    }
    public void subscription_change(EventType[] addedEventType[] removedthrows InvalidEventType
    {
        changeSet(addedremoved);
    }
    {
        return getAllTypes();
    }
New to GrepCode? Check out our FAQ X