⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sessiontablesubject.java

📁 java开源的企业总线.xmlBlaster
💻 JAVA
字号:
package org.xmlBlaster.engine.admin.extern.snmp;import java.util.ArrayList;import java.util.Iterator;/**  * SessionTableSubject holds onto session entries.  * The SessionTableSubject also allows Observers to add and remove themselves. * In order to add a session entry notifyObservers() is called.  * @version @VERSION@ * @author Udo Thalmann */public class SessionTableSubject implements Subject {    public SessionEntryImplPeer sessionEntryImplPeer;    public NodeTableObserver nodeTableObserver;    public ClientTableObserver clientTableObserver;    public ArrayList observers = new ArrayList();    public Integer nodeIndex;    public Integer clientIndex;    public String nodeName;    public String clientName;    public int opCode;    public static final int INSERT = 0;    public static final int REMOVE = 1;    /**     * Holds a reference to nodeTableObserver and clientTableObserver.     * @param NodeTableObserver provides access to nodeIndex.     * @param ClientTableObserver provides access to clientIndex.     */    public SessionTableSubject(NodeTableObserver nodeTableObserver,			       ClientTableObserver clientTableObserver) {	this.nodeTableObserver = nodeTableObserver;	this.clientTableObserver = clientTableObserver;    }    /**     * Calls notifyObservers() in order to add a new session entry to session table.     * @param NodeName node to wich client entry belongs.     * @param ClientName client to wich session entry belongs.     * @param SessionEntryImplPeer session entry to be added.     */    public void addEntry(String nodeName,			 String clientName,			 SessionEntryImplPeer sessionEntryImplPeer) {	this.sessionEntryImplPeer = sessionEntryImplPeer;	nodeIndex = nodeTableObserver.getIndex(nodeName);	clientIndex = clientTableObserver.getIndex(nodeName + clientName);	this.nodeName = nodeName;	this.clientName = clientName;	if (nodeIndex != null && clientIndex != null) {	    opCode = INSERT;	    notifyObservers();	}	else {	    System.out.println("Cannot add session entry. Node " + nodeName +                                " or client " + clientName + " does not exist.");	}    }     /**     * Calls notifyObservers() in order to remove a session entry from session table.     * @param NodeName node to wich client entry belongs.     * @param ClientName client to wich session entry belongs.     * @param SessionEntryImplPeer session entry to be removed.     */    public void removeEntry(String nodeName,			    String clientName,			    SessionEntryImplPeer sessionEntryImplPeer) {	this.sessionEntryImplPeer = sessionEntryImplPeer;	nodeIndex = nodeTableObserver.getIndex(nodeName);	clientIndex = clientTableObserver.getIndex(nodeName + clientName);	this.nodeName = nodeName;	this.clientName = clientName;	if (nodeIndex != null && clientIndex != null) {	    opCode = REMOVE;	    notifyObservers();	}	else {	    System.out.println("Cannot remove session entry. Node " + nodeName +                                " or client " + clientName + " does not exist.");	}    }    /**     * Adds an observer to observer list.     * @param Observer implements observer update method.     */    public void addObserver( Observer o ) {	observers.add( o );    }    /**     * Removes an observer from observer list.     * @param Observer implements observer update method.     */    public void removeObserver( Observer o ) {	observers.remove( o );    }    /**     * Calls update method for all observers in observer list.      */    private void notifyObservers() {        // loop through and notify each observer	Iterator i = observers.iterator();	while( i.hasNext() ) {	    Observer o = ( Observer ) i.next();	    o.update( this );	}    }}

⌨️ 快捷键说明

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