00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 package org.objectweb.proactive.core.exceptions.manager;
00032
00033 import java.io.Serializable;
00034 import java.util.Collection;
00035 import java.util.Iterator;
00036 import java.util.LinkedList;
00037
00038 import org.objectweb.proactive.core.exceptions.NonFunctionalException;
00039
00040
00041 public class NFEListenerList implements NFEProducer, Serializable {
00042
00043
00044 private Collection<NFEListener> listeners;
00045
00046 public NFEListenerList() {
00047 listeners = new LinkedList<NFEListener>();
00048 }
00049
00050 public void addNFEListener(NFEListener listener) {
00051 listeners.add(listener);
00052 }
00053
00054 public void removeNFEListener(NFEListener listener) {
00055 listeners.remove(listener);
00056 }
00057
00058 public int fireNFE(NonFunctionalException e) {
00059 int nbListeners = 0;
00060
00061 Iterator<NFEListener> iter = listeners.iterator();
00062 while (iter.hasNext()) {
00063 NFEListener listener = iter.next();
00064 if (listener.handleNFE(e)) {
00065 nbListeners++;
00066 }
00067 }
00068
00069 return nbListeners;
00070 }
00071 }