modelupdatenotifier.java

来自「《Java网络程序设计.rar》包括三个网络程序的源代码。」· Java 代码 · 共 58 行

JAVA
58
字号
/* */package org.impact.stars.control.web;import java.util.HashMap;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;import org.impact.stars.util.Debug;import org.impact.stars.control.exceptions.GeneralFailureException;import org.impact.stars.control.exceptions.StarsAppException;/** * This class is responsible for providing methods to add objects as listeners * for a particular model update event and for notifying the listeners when the * event actually occurs. */public class ModelUpdateNotifier implements java.io.Serializable {    private HashMap listenerMap;    public ModelUpdateNotifier() {        listenerMap = new HashMap();    }    public void notifyListeners(Collection updatedModelList) throws                                                    StarsAppException {        for (Iterator it1 = updatedModelList.iterator() ; it1.hasNext() ;) {            String modelType = (String) it1.next();            Debug.println("notifyListeners: " + modelType);            Collection listeners = (Collection)listenerMap.get(modelType);            if (listeners != null) {                for (Iterator it2 = listeners.iterator(); it2.hasNext(); ) {                    ((ModelUpdateListener) it2.next()).performUpdate();                }            }        }    }    public void addListener(String modelType, Object listener) {        Debug.println("Model update addlistener: " + modelType);        if (listenerMap.get(modelType) == null) {            ArrayList listeners = new ArrayList();            listeners.add(listener);            listenerMap.put(modelType,listeners);        } else {            ((ArrayList) listenerMap.get(modelType)).add(listener);        }    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?