コード例 #1
0
ファイル: EventsAPI.java プロジェクト: munix/jdget
 public List<Long> publishEvent(final EventObject event, final List<Long> subscriptionids) {
   ArrayList<Subscriber> publishTo = new ArrayList<Subscriber>();
   final ArrayList<Long> ret = new ArrayList<Long>();
   if (subscriptionids != null && subscriptionids.size() > 0) {
     /* publish to given subscriptionids */
     for (final long subscriptionid : subscriptionids) {
       final Subscriber subscriber = this.subscribers.get(subscriptionid);
       if (subscriber != null) {
         publishTo.add(subscriber);
       }
     }
   } else {
     /* publish to all subscribers */
     publishTo = new ArrayList<Subscriber>(this.subscribers.values());
   }
   for (final Subscriber subscriber : publishTo) {
     if (subscriber.isSubscribed(event)) {
       ret.add(subscriber.getSubscriptionID());
       subscriber.push(event);
       subscriber.notifyListener();
     }
   }
   return ret;
 }